Clover is a chess engine, written in C++, inspired by my favorite plant. Since the 2020 lockdown, I got bored and decided to combine the 2 things I love the most: chess and programing, into making a program that can beat me.
Currently, Clover supports Endgame Tablebases, thanks to Fathom.
Clover is UCI compatible, but doesn't have a GUI, so, in order to play with it, you need a GUI like Arena, Cute chess etc.
If you want to compile locally, I recommend you to use:
g++ *.cpp *.c -march=native -Wall -O3 -o output.exe -std=c++11
without -flto
, because it crashes for some strange reason.
If you are compiling on Linux, you need to add -pthread
to your command line.
In the future, I will add a makefile too.
These are the versions sorted by speed, the ones at the top being the fastest:
- -bmi2, supported on any bmi2 CPU
- -popcnt, supported by most non-ancient CPUs
- normal version, no aditional compile flags
Setting thread count, Syzygy Path and Hash size is now available.
Additional UCI commands:
- Perft command (after setting position)
perft <depth>
- Eval command (after setting position)
eval
- Tune command
tune
If one spots a bug or finds an improvement, I'm open to any suggestion.
I inspired myself from:
- Stockfish
- Ethereal
- Igel
- Topple
- and of course ChessProgrammingWiki