Chess engine implemented from scratch in C++. The associated paper "Chess engine with an integrated AI" contains the theory and how I implemented the engine.
- Bitboards
- Magic bitboards
- Move generator
- Make/unmake move
- Castle
- Promotion
- Search
- Negamax with alpha-beta pruning
- Quiescence search
- Evaluation
- Material
- Positional
- UTF-8 compatible shell
- C++11 or better
git clone https://github.com/FredrikErikJohansson/chess-ai.git
cd chess-ai
make
./chess
git clone https://github.com/FredrikErikJohansson/chess-ai.git
Include the src/
directory into a Visual Sudio project and run from the IDE. You may have to tweak some compiler flags to get optimal performance.
The engine is predefind with values for good performance. To make a move from e2 to e4, type e2e4
.