This projects purpose is to get an understanding of efficiency and the Min-Max algorithm used in a competitive chess engine. Efficiency has taken a big part in the development due to the engine needing to be able to predict several moves ahead without adding much delay to the game. As of now our engine has a NPS (Nodes / Moves per second) of 300,000
which may seem like a lot but other implementations are in the millions.
We have yet to start on the actual "AI" aspect of this project due to being held up by a failing implementation of chess that only worked up to 5 moves. We still have checks that need to be implemented, such as Castling not allowing you to move through check, and so it will continue to be delayed untill the chess engine is fully functional and passes all checks implemented using C-Test.
Currently there is no competition against a functional chess AI / Engine
We do have a GUI library that allows you to play a game of chess locally on one window or even though a online session using our server app. They do work and well enough to be able to play a game happily.
In both the server based app and local app
I : Will open the info menu
Esc : Will quit the game
For normal moves, you can drag pieces.
Local app has access to the undo move function using Ctrl + Z
This will compile the whole feature-set:
mkdir Build
cmake ..
make
The GUI based apps will be located in the test folder, or can be downloaded from the release page!