My personal 'everyone needs to write a chess program in his life' attempt.
A chess program as a client-server architecture. The server is responsible for all the chess logic while clients can send commands to create, join and play chess games.
Could evolve in either a small-sized online chess or a chess analysis software if I will ever care enough.
-
Client-Server Architecture:
- Basic Management for multiple games and clients
- Protocol for communicating online-chess-related messages (hosting games, making moves, ...)
-
All mandatory rules for a chessgame:
- All Piece logic
- Checkmate and Stalemate detection
- 50-Moves-Rule
- Threefold-Repetition
-
Basic GUI Client:
- Create, Join and List Games
- Move Pieces, Promote
- Response to opponent moves, game over, etc.
-
SAN converter
-
Nicknames
-
Move history
-
Better Client with better GUI
-
Insufficient Material Draw
-
Offer Draw
-
Resigning
-
Time control management
-
Material overview
-
Persistent Accounts
-
Puzzles
-
Analysis
-
UCI Bridge (Stockfish integration)

