- UCI chess engine by Code Monkey King
- written for didactic purposes and
- covered in 82 YouTube video series
- BBC 1.2 (is currently getting tested)
- BBC 1.0 https://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=BBC%201.0%2064-bit#BBC_1_0_64-bit
If your engine is stronger than 2500 ELO there's no much sense in playing matches
versus BBC for at the moment it would most likely lose all the games.
On the other hand testing versus engines of 2000 - 2300 ELO is welcomed!
https://github.com/maksimKorzh/bbc/tree/master/pgn
- bitboard board representation
- pre-calculated attack tables
- magic bitboards for sliding pieces
- encoding moves as integers
- copy/make approach for making moves
- negamax search with alpha beta pruning
- PV/killer/history move ordering
- iterative deepening
- PVS (Principle Variation Search)
- LMR (Late Move Reduction)
- NMP (Null Move Pruning)
- Transposition table (up to 128MB)
- Material/PST (Positional Square Tables) evaluation
- Tapered evaluation
- UCI protocol
This project would never be completed
without the help of Talk Chess forum
community members who has been helping me
during the development process significantly
I would like to thank to:
- HaraldLuessen & Pedro Castro Elgarresta for neverending hints and technical support
- Sven Schüle for explaining how mating scores works in TT (in great details!)
- Jay Warendorff for testing development versions of BBC
- Marcel Vanthoor for teaching me linear algebra and general inspirations
- Ronald Friederich for providing PeSTO evaluation tables and sharing his ideas
And all the subscribers watching my videos and
motivating me to keep the development!
