Cinnamon is a chess program for Windows, Linux, Mac OS, Android and Raspberry Pi, is a console-based chess engine for use with xboard, Arena, Tarrasch, Droidfish or any UCI-compatible GUI. Cinnamon is also a javascript library to play with chessboardjs or any js GUI.
2.5
- Time management
- Tapered eval
- Bitboard Calculator
- Auriga Distributed Perft
- Web Eval debugger
- Cinnamon on Android
- Cinnamon on DGT Pi
- Clion IDE
- Elo ratings
- Available for both Unix, Windows, Mac, Android, ARM and Javascript
- UCI protocol
- GPL 3 License
- Chess 960
- C++11 source
- PVS
- Rotated bitboards
- Null moves
- Futility pruning
- Reverse Futility Pruning
- Delta pruning
- Razoring
- Interruptible multithread Perft test standard and chess960
- 32/64 bit architectures
- Iterative deeping
- History heuristics
- Killer heuristics
- Lazy evaluation
- MVV/LVA
- Transposition Table
- Aspiration Windows
- Late Move Reduction
- Ponder
- Gaviota Tablebases
- Syzygy Tablebases
Binaries are available here. All files are compiled statically, no further libraries are necessary.
cinnamon.exe -perft [-d depth] [-c nCpu] [-h hash size (mb) [-F dump file]] [-Chess960] [-f "fen position"]
Setting -F
and -h
you can stop (Ctrl-c) and restart the perft process.
cinnamon.exe -dtm-gtb -f "fen position" -p path
cinnamon.exe -wdl-gtb -f "fen position" -p path
cinnamon.exe -dtz-syzygy -f "fen position" -p path
cinnamon.exe -wdl-syzygy -f "fen position" -p path
cinnamon.exe -puzzle_epd -t K?K?
example: cinnamon.exe -puzzle_epd -t KRRKPN
Cinnamon requires C++11 or greater
-
use MS Visual Studio (cinnamon.vcxproj)
-
use cmake (CMakeLists.txt)
-
use make - unique Makefile to compile for many architectures:
$ make
Makefile for cross-compile Linux/Windows/OSX/ARM/Javascript
make cinnamon64-modern-INTEL > 64-bit optimized for modern Intel cpu
make cinnamon64-BMI2 > 64-bit optimized for Haswell Intel cpu
make cinnamon64-modern-AMD > 64-bit optimized for modern Amd cpu
make cinnamon64-modern > 64-bit with popcnt bsf sse3 support
make cinnamon64-generic > Unspecified 64-bit
make cinnamon64-ARM > Optimized for ARM cpu
make cinnamon32-modern > 32-bit with sse support
make cinnamon32-generic > Unspecified 32-bit
make cinnamon32-ARM > Optimized for ARM cpu
make cinnamon-js > Javascript build
add:
COMP=compiler > Use another compiler
FULL_TEST=yes > Unit test (googletest)
g++ is the default compiler, add COMP=yourcompiler to use another compiler
example: make cinnamon64-modern-INTEL COMP=clang++
Cinnamon is released under the GPLv3+ license.
Cinnamon was written by Giuseppe Cannella at gmail dot com.