Integral is a UCI-compliant chess engine developed in C++. It is a personal project developed with the goal of meshing my admiration for chess with programming.
Play against Integral on Lichess
Integral supports the following UCI commands (not all listed):
uciPrints information about Integral and replies withuciokucinewgameSets up a new game and clears the transposition tableisreadyReplies withreadyokposition startposSets the board state and pieces to the starting positionposition fen <string>Sets the board state and pieces to the given FEN stringposition fen <string> moves <e2e4 e7e5 ...>Plays the given moves from the FEN positiongo depth <depth>Searches up to the given depth and replies withbestmove <move>go infiniteSearches up to the maximum search depth (100) and replies withbestmove <move>go wtime <time> btime <time> winc <inc> binc <inc>Searches for and replies with the best move given within the time/increment allotted. The amount of time used is managed by an internal time management system to ensure the engine doesn't run out of timego movetime <time>Searches for the best move using the full time allottedgo [infinite]Searches for an infinite amount of timego perft <depth>Runs a split perft test on the current position up the specified depth
Integral also supports some non-standard commands:
test [see|perft]Runs tests on static exchange evaluation (SEE) and/or move generation (perft)bench [depth]Performs a search on the current position up to the specified depth and returns the node count
Note
Integral must be compiled with either GCC v13 (or higher) or Clang v15 (or higher)
Integral provides a Makefile for compatibility with CMake and ease of use.
To compile Integral, enter the following commands in a terminal:
git clone https://github.com/aronpetko/integral
cd integral
make <native|x86_64_bmi2|x86_64_modern|x86_64>Integral is estimated to be around 3400 CCRL Blitz, which puts it at a super-human level.
