NOTE: Only works on Linux! To patch, change src/search.c to not use clock_gettime or CLOCK_MONOTONIC.
built on x86, no guarantee of it working on other systems :P (at least not with comparable performance)
- PeSTO's evaluation function
- Iterative deepening
- Negamax with alpha-beta pruning
- MVV-LVA move ordering
- Transposition table (for cutoffs and move ordering)
- Quiescence search
- Bitboard-based board representation
- Hyperbola quintessence for sliding pieces
- Pseudolegal move generation
- make-unmake
- Zobrist hashing
make or make main compiles the main executable, which can then be run and interacted with using a UCI tool.
make test compiles main and unit tests binary, and runs unit tests, fastchess UCI test and Ethereal perft test suite. Might take a minute.
make test will install following libraries (if missing) and run tests and compile main executable:
run with "make install" to avoid compilation
unity testing framework, includeable like #include "lib/unity.h" (https://github.com/ThrowTheSwitch/Unity)
fastchess located in ./fastchess folder (https://github.com/Disservin/fastchess)