Software project / S1
Digital Chess Game
A Java chess game with a graphical interface, complete move rules, undo functionality, and automated testing.
Java · Swing · Object-oriented programming · Automated testing
01
Project overview
Multiplayer Chess.
This project started off simple by using a two-dimensional character array to represent a chessboard and validate basic pawn movement.
After establishing the basics and understanding the skeleton of the logic, I expanded it into a local two-player application with an object-oriented rules engine, a Java Swing interface, legal-move validation, game-state tracking, and automated tests.
The interface sends each requested move to the chess engine, which determines whether the move is valid. Keeping the rules separate from the interface makes the program easier to test and maintain.
02
Implemented features
Core gameplay, rules, and state management.
Local two-player gameplay
Movement rules for every chess piece
Turn enforcement and captures
Check, checkmate, and stalemate detection
Castling, en passant, and pawn promotion
Undo, restart, and move history
Automated engine tests
03
Inside the project
Interface, logic, and game-state development.

The Java Swing interface displays the board, tracks turns, and sends each attempted move to the chess engine for validation.

Movement rules are kept separate from the interface so legal moves, captures, check states, and special rules can be tested independently.

Automated tests verify movement, game-state transitions, special rules, and invalid actions before changes reach the interface.
Project files
Explore the source code.
The GitHub repository contains the Java source files, engine tests, launch scripts, architecture notes, and project documentation.
Open GitHub repository