This project is a command-line interface (CLI) chess game implemented in C++. It provides a simple and interactive way to play chess directly from the terminal. The game follows standard chess rules, with some exceptions (e.g., castling and en passant are not implemented).
- Fully interactive CLI-based gameplay
- ASCII symbols representing chess pieces
- Alternating turns between black and white pieces
- Movement restricted to legal chess moves (except castling and en passant)
- Pawn promotion with selectable piece options
- Win condition when a king is captured
- Board rotation for perspective switching
- Simple command-based controls:
exit
- Quit the gameswap
- Rotate the board- Move a piece using coordinate chess notation (specifying only start and end square e.g.,
c2-c4
)
- Base
Piece
class with derived classes for each chess piece Board
class managing game state and piece placementSide
class organizing pieces by colorGame
class handling gameplay logicIO
module for user interaction and board visualization
std::list
for dynamic piece managementstd::vector<std::string>
for storing possible movesstd::wstring
for Unicode-based board renderingbool
flags for tracking game state
This project is licensed under the MIT License. See the LICENSE
file for details.