Chess engine View source on GitHub

A chess engine written in C.


  • 0x88 board representation
  • Zobrist key hashing
  • Winboard support
  • Perft test suite
  • Search test suite
  • Runs on Mac/Linux/Windows


Perft(6) on my 2.4 GHz Intel Core i7 2760QM computer with 8 GB RAM.

Position FEN Perft(6) Time (s) Moves/s
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 119060324 4.677 25455807.4
r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1 8031647685 328.109 24478596.7


$ ./cerulean
display         Draws the board
divide n        Divides the current board to a depth of n
e2e4            Moves from the current position, and thinks
go              Forces the engine to think
undo            Subtracts the previous move
new             Sets up the default board position
setboard [FEN]  Sets the board to whatever you want
perfttest       Runs the perft test suite
searchtest      Runs the search test suite
eval            Performs a static evaluation of the board and prints info
white           Sets the active colour to WHITE
black           Sets the active colour to BLACK
time [INT]      Sets engine's time (in centiseconds)
otim [INT]      Sets opponent's time (in centiseconds)
exit            Exits the menu
help            Gets you this magical menu