- CMake
- Any C++ compiler (gcc, clang, MSVC, ...)
- Any Build system (make, ninja, ...)
- SFML 3.X graphics interface
If you're not using an IDE, compile using the following commands:
# Generate build files
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release # or Debug
# Compile
cmake --build buildTo execute the program, run:
./build/ChessApp| Key | Action |
|---|---|
| Left Click + Drag | Move piece |
| Right Click | Cancel move |
| ← | Undo |
| → | Redo |
| R | Flip board |
| N | New game |
| Esc | Quit |
- Basic piece movement
- Check detection and highlight
- Checkmate and stalemate detection
- Castling with proper validation
- En passant
- Pawn promotion with UI
- Move indicators (legal moves shown when dragging)
- Undo/Redo system
- Sound effects
- Turn indicator (show whose turn it is)
- Board coordinates (a-h, 1-8)
- Captured pieces display
- Move history with algebraic notation
- Highlight selected piece's original square
- Replace
move_tuplewith properMoveclass - Use
PieceTypeenum instead of char - Extract
MoveValidatorclass - Encapsulate Board internal state
- Centralize color/size constants
- 50 move rule (draw)
- Threefold repetition (draw)
- Insufficient material detection (draw)
- Chess clock/timer