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.3.4
- Chess 960
- Killer heuristics
- Improved move ordering
- Improved Gaviota Tablebase search
- Syzygy Tablebases
- BMI2 Instructions
- Bug fix in enpassant
- Bug fix parallel perft Features
- 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
- Delta pruning
- Razoring
- Interruptible multithread Perft test standard chess960
- 32/64 bit architectures
- Iterative deeping
- History heuristics
- Killer heuristics
- Lazy evaluation
- MVV/LVA
- Two-tier Transposition Table
- Aspiration Windows
- Late Move Reduction
- Ponder
- Open Book (Polyglot)
- Gaviota Tablebases
- Syzygy Tablebases
- Elo ratings
Binaries are available here. All files are compiled statically, no further libraries are necessary.
cinnamon -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 -dtm-gtb -f "fen position" -p path
cinnamon -wdl-gtb -f "fen position" -p path
cinnamon -dtz-syzygy -f "fen position" -p path
cinnamon -wdl-syzygy -f "fen position" -p path
cinnamon -puzzle_epd -t K?K?
example: cinnamon -puzzle_epd -t KRKP
Cinnamon requires C++11 or greater, use 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.