This is a work in progress chess game written in C++ using SFML.
- Blank board render
- Rendering pieces
- Forsyth-Edwards Notation support to load board states
- Working Pieces
- Pseudolegal movement
- Option to enable and disable algebraic notation on the board
- Special moves (castling & en pessant)
- Legal move logic
- Auto flip board option for local games
- Customization (piece sets & board colors)
- Ability to export games
- Ability to import games to review them (No Eval)
- Clock
- Simple online multiplayer (p2p)
- Stockfish integration to play vs the computer
- Different AI difficulties
- SFML 2.5.1 (Included)
- Premake 5 (For project setup only - Included)
- Separated Board logic into
BoardEngine
,BoardRenderer
andBoardInterface
- Added support to load board states via FEN strings
- Last position cache is now used
BoardRenderer
can now draw text on 5 different positions of a cell (center, top-left, top-right, bottom-left, bottom-right)BoardRenderer
now has the option to draw the file and rank coordinates- Added App Icon
- Pieces are now able to be grabbed and moved
- Pieces can't take pieces of the same color
BoardRenderer
can now draw pieces in places not aligned to the grid- Implemented methods for
Piece
that allow to check if a piece is empty/null and to reset them BoardEngine
now has the option to fetch a piece at a specific square
- Introducing Semantic Versioning! From now on, all updates will be labeled using semantic versioning instead of dates
- Pieces now move using pseudo-legal moves (this doesn't include any special moves)
BoardEngine
now has two ways of representing the board: the original 64 piece array and a 2D piece arrayBoardRenderer
now has the ability to hide pieces, this was added so thatBoardInterface
hides the piece instead of deleting it while holding a pieceBoardEngine
now usesint8_t
instead ofuint8_t
for piece indices
- Reworked the whole project structure
- Repository now includes a premake file instead of Visual Studio files
- All dependencies are now included under /vendor
.gitignore
now ignores Visual Studio files
- Fixed premake5 binary not being included by git
- Added images to
README.md
- Renamed
GenerateProjects.bat
toGenerate-VS2022.bat