Skip to content

UCI compatible chess engine written in C++

Notifications You must be signed in to change notification settings

gab8192/integral

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

442 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Integral Chess Engine

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

Usage

Integral supports the following UCI commands (not all listed):

  • uci Prints information about Integral and replies with uciok
  • ucinewgame Sets up a new game and clears the transposition table
  • isready Replies with readyok
  • position startpos Sets the board state and pieces to the starting position
  • position fen <string> Sets the board state and pieces to the given FEN string
  • position fen <string> moves <e2e4 e7e5 ...> Plays the given moves from the FEN position
  • go depth <depth> Searches up to the given depth and replies with bestmove <move>
  • go infinite Searches up to the maximum search depth (100) and replies with bestmove <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 time
  • go movetime <time> Searches for the best move using the full time allotted
  • go [infinite] Searches for an infinite amount of time
  • go 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

Compilation

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>

Rating

Integral is estimated to be around 3400 CCRL Blitz, which puts it at a super-human level.

About

UCI compatible chess engine written in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.2%
  • Other 0.8%