PythonChess
A full chess game in Python with a Pygame GUI — complete rule enforcement, move highlighting, and check/checkmate detection.
Implementing chess properly forces you to encode every rule precisely — legal moves per piece, turn order, and the recursive question of whether a move leaves your own king in check.
I modelled the board and pieces explicitly, generated valid moves per piece type, and layered check/checkmate detection on top of game-state tracking, with a Pygame GUI that highlights selections and legal targets.
Rules engine
Standard movement for every piece, turn-based play, and game-state tracking.
Check & checkmate detection
Validates that moves don’t leave the king in check and detects terminal positions.
Interactive board
A Pygame UI that highlights the selected piece and its valid moves and shows game status.
A clear separation between game state and rendering kept the rule logic testable. Chess is a great forcing function for thinking about edge cases you’d otherwise skip.