A Chess engine made using C++.
Engine:
Universal Chess Interface (UCI) You can call the makefile in the src folder to create the binary. You can then use the binary in any UCI GUI to use it.
Acknowledgements:
This engine wouldn't be where it is now without Chess Programming Wiki, where I have spent many hours looking at the documentation. I have also looked at various programming topics from talkchess forums which has helped tremendously. Special thanks to the Koivisto team team who are kind enough to give many advice for this engine. And thanks to many open source engines where I've gained inspiration from, most notably Ethereal and Stockfish.
Techniques Used in Engine:
Move Ordering:
- Principal variation move
- Most valuable victim, least valuable attacker (Mvv Lva) move ordering.
- Killer moves heurstic.
- History Heuristic.
Pruning and Reductions:
- Null Move Pruning.
- Late moves reduction.
Pure speed improvements:
- Transposition table (default 256MB memory allocated).
- Iterative deepening
- Principal variation search.
- Bitboards.
- Magic bitboards for sliding pieces.
Accuracy:
- Quiescence search (Mitigates the horizon effect).