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
Piececlass with derived classes for each chess piece Boardclass managing game state and piece placementSideclass organizing pieces by colorGameclass handling gameplay logicIOmodule for user interaction and board visualization
std::listfor dynamic piece managementstd::vector<std::string>for storing possible movesstd::wstringfor Unicode-based board renderingboolflags for tracking game state
This project is licensed under the MIT License. See the LICENSE file for details.