Simple chess game intended to be faster than my (now abandoned) python version, hence the name.
Many thanks to Chess Programming Wiki and TSCP for some ideas and tuning values.
- Board Representation:
- Bitboards
- Search:
- Iterative Deepening
- Alpha-Beta Pruning
- Parallel Processing
- Quiescence Search
- Static Exchange Evaluation
- Evaluation:
- Material Balance
- Piece-Square Tables
- Pawn Structure
- Graphical User Interface:
- Attack Heatmap
- Edit Board Mode
- Download latest release
- Extract file contents
- Run
chess.exe
(Windows) or./chess
(macOS/Linux) - ???
- Profit
Hotkey | Usage |
---|---|
β² / βΌ | Increase/decrease AI search depth |
A | Toggle [A]I opponent |
I | [I]nvert player's colors |
H | Toggle attack [H]eatmap |
C | Change board [c]olor scheme |
R | [R]andom board color |
T | Random [t]inted board color |
E | [E]dit mode (drag to move or click to cycle pieces) |
P | Export to [P]GN |
D | [D]ump game info to file |
M | List legal [M]oves (console mode only) |
V | Static board e[v]aluation (console mode only) |
Q | [Q]uit |
U | [U]ndo move |
In order to successfully build the project we need a C++ compiler, CMake and also the SDL graphics libraries: SDL2
, SDL2_image
and SDL2_ttf
.
In Debian/Ubuntu, this can be achieved by running the command:
apt-get install -y g++ cmake libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
In macOS, we can run:
brew install cmake sdl2 sdl2_image sdl2_ttf
Then we just download the code, build the project and run the program:
git clone https://github.com/fredericojordan/fast-chess.git
cd fast-chess
cmake .
make
./chess