DoctorB is a UCI compatible chess engine, written in C++.
DoctorB is named after a character in Schachnovelle by Stefan Zweig. Dr B plays chess against himself by seperating his mind in two personas: Black and White.
- Classical bitboard board representation and move generation
- Alpha beta search strategy with iterative deepening
- Tapered piece square board evaluation
- Hashing / transposition table
- Move ordering
- Static Exchange Evaluation (SEE)
- Repetition detection
- Support Polyglot opening books
- Quiesence search
- Aspiration Windows
- End game tables
- Multi-threaded search
- ...
Next to the traditional UCI commands, DoctorB also supports the following commands
go perft [n]
: show the number of possible positions after [n] pliesd
: display the current position
- option name Hash type spin default 32 min 1 max 128 (Hash size in MB)
- option name OwnBook type check default false (use Polyglot opening book)
- option name OwnBookPath type string default openings.bin (Polyglot opening book path)
I'm trying to keep things originial. However, this engine would not have been possible without the following sources: