A chess engine with a simple evaluation function written in C++. Play me on lichess!
- Alpha beta pruning
- Iterative deepening
- Quiescence search
- Transposition tables
- Null move reductions
- Late move reductions
- Killer heuristic
- Guard heruistic
- Piece square tables
- Piece square tables
- Mobility
- Tapered evaluation
- Tempo bonus
release
, the default, will compile the engine binarytune
will optimize move order parameters for accuracy on a specified set of gamesunit
will compile and run unit tests via doctestperft
will run validation checks on move generation code
To compare across different versions:
- Compile the engine from different branches
- Run a tournament with
analysis/selfplay.py
, specifying the opening book, the time control, and the list of branches