Permalink
Browse files

.

  • Loading branch information...
gekomad
gekomad committed Apr 6, 2016
1 parent 98cecfd commit 9373e7164444a2191a3294bb5c0921253b4023e8
Showing with 12,353 additions and 101 deletions.
  1. +105 −31 README.md
  2. +282 −0 src/ChessBoard.cpp
  3. +224 −0 src/ChessBoard.h
  4. +536 −0 src/Eval.cpp
  5. +320 −0 src/Eval.h
  6. +650 −0 src/GenMoves.cpp
  7. +595 −0 src/GenMoves.h
  8. +96 −0 src/Hash.cpp
  9. +154 −0 src/Hash.h
  10. +247 −0 src/IterativeDeeping.cpp
  11. +90 −0 src/IterativeDeeping.h
  12. +184 −70 src/Makefile
  13. +237 −0 src/OpenBook.cpp
  14. +81 −0 src/OpenBook.h
  15. +692 −0 src/Search.cpp
  16. +225 −0 src/Search.h
  17. +385 −0 src/SearchManager.cpp
  18. +212 −0 src/SearchManager.h
  19. +182 −0 src/Tablebase.cpp
  20. +160 −0 src/Tablebase.h
  21. +404 −0 src/Uci.cpp
  22. +53 −0 src/Uci.h
  23. +36 −0 src/WrapperCinnamon.cpp
  24. +35 −0 src/WrapperCinnamon.h
  25. BIN src/gtb/ARM/32/libgtb.a
  26. BIN src/gtb/ARM/64/libgtb.a
  27. BIN src/gtb/Linux/32/libgtb.a
  28. BIN src/gtb/Linux/64/libgtb.a
  29. BIN src/gtb/OSX/64/libgtb.a
  30. BIN src/gtb/Windows/32/libgtb.a
  31. BIN src/gtb/Windows/64/libgtb.a
  32. +252 −0 src/gtb/gtb-probe.h
  33. +60 −0 src/js/Tablebase.h
  34. +53 −0 src/js/Uci.h
  35. +57 −0 src/js/main.cpp
  36. +105 −0 src/main.cpp
  37. +249 −0 src/namespaces/board.h
  38. +99 −0 src/namespaces/debug.h
  39. +147 −0 src/namespaces/def.h
  40. +30 −0 src/namespaces/random.h
  41. +260 −0 src/namespaces/random.inc
  42. +671 −0 src/perft.html
  43. +234 −0 src/perft/Perft.cpp
  44. +84 −0 src/perft/Perft.h
  45. +216 −0 src/perft/PerftThread.cpp
  46. +67 −0 src/perft/PerftThread.h
  47. +40 −0 src/perft/_TPerftRes.h
  48. +941 −0 src/regression_test.html
  49. +34 −0 src/test/eval.cpp
  50. +50 −0 src/test/perft.cpp
  51. +54 −0 src/test/search.cpp
  52. +132 −0 src/test/spinlock.cpp
  53. +132 −0 src/test/spinlockShared.cpp
  54. +50 −0 src/test/tablebase.cpp
  55. +23 −0 src/test/test.cpp
  56. +31 −0 src/test/test.h
  57. +29 −0 src/test/util/fileUtil.cpp
  58. +60 −0 src/test/util/string.cpp
  59. +48 −0 src/threadPool/Mutex.h
  60. +26 −0 src/threadPool/ObserverThread.h
  61. +89 −0 src/threadPool/Spinlock.h
  62. +104 −0 src/threadPool/Thread.h
  63. +156 −0 src/threadPool/ThreadPool.h
  64. +298 −0 src/util/Bitboard.cpp
  65. +313 −0 src/util/Bitboard.h
  66. +55 −0 src/util/FileUtil.h
  67. +232 −0 src/util/GetOpt.h
  68. +80 −0 src/util/IniFile.cpp
  69. +50 −0 src/util/IniFile.h
  70. +51 −0 src/util/Random.h
  71. +34 −0 src/util/Singleton.h
  72. +67 −0 src/util/String.cpp
  73. +111 −0 src/util/String.h
  74. +89 −0 src/util/Time.h
  75. +51 −0 src/util/Timer.cpp
  76. +44 −0 src/util/Timer.h
  77. +110 −0 src/util/logger.h
View
136 README.md
@@ -1,32 +1,106 @@
# Cinnamon
Cinnamon is a chess program for Windows, Linux, Mac OS and Android, is a console-based chess engine for use with <a href="http://www.gnu.org/software/xboard/" rel="nofollow">xboard</a>, <a href="http://www.playwitharena.com/" rel="nofollow">Arena</a>, <a href="http://triplehappy.com/" rel="nofollow">Tarrasch</a>, <a href="https://play.google.com/store/apps/details?id=com.google.android.chess" rel="nofollow">Chess for Android</a> or any UCI-compatible GUI. Cinnamon is also a javascript library to play with <a href="http://chessboardjs.com" rel="nofollow">chessboardjs</a> or any js GUI.
<br><br>
<div style="width: 436px;" class="phead"><b>Features:</b></div>
<ul>
<li>Available for both Unix, Windows, Mac, Android and Javascript </li>
<li>UCI protocol </li>
<li>GPL 3 License </li>
<li>C++11 source </li>
<li>Rotated bitboards </li>
<li>Null moves </li>
<li>Futility pruning </li>
<li>Delta pruning </li>
<li>Razoring </li>
<li>Interruptible multithread Perft test </li>
<li>32/64 bit architectures </li>
<li>Iterative deeping </li>
<li>Killer heuristics </li>
<li>Lazy evaluation </li>
<li>Mvv/Lva </li>
<li>Transposition Table</li>
<li>Aspiration Windows </li>
<li>Late Move Reduction </li>
<li>Ponder </li>
<li>Available with Tarrasch GUI for Windows</li>
<li>Open Book (Polyglot)</li>
<li>Gaviota Tablebases</li>
<li><a href="http://cinnamonchess.altervista.org/api/1.2a/class_iterative_deeping.html" rel="nofollow">Source doc</a> </li>
<li><a href="http://www.computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Cinnamon" rel="nofollow">Elo ratings</a> </li>
</ul>
Cinnamon
==========
###UCI Chess Engine
Cinnamon is a chess program for Windows, Linux, Mac OS, Android and ARM, is a console-based chess engine for use with
[xboard][4],
[Arena][5],
[Tarrasch][6],
[Chess for Android][7]
or any UCI-compatible GUI. Cinnamon is also a javascript library to play with
[chessboardjs][8] or any js GUI.
Version
----------
2.0
Features
----------
- Available for both Unix, Windows, Mac, Android, ARM and Javascript
- GPL 3 License
- UCI protocol
- Parallel Search - Lazy SMP
- C++11 source
- Rotated bitboards
- Null moves
- Futility pruning
- Delta pruning
- Razoring
- Interruptible multithread [Perft][9] test
- 32/64 bit architectures
- Iterative deeping
- Killer heuristics
- Lazy evaluation
- Mvv/Lva
- Transposition Table
- Aspiration Windows
- Late Move Reduction
- Ponder
- Available with Tarrasch GUI for Windows
- Open Book (Polyglot)
- Gaviota Tablebases
- [Source doc][2]
- [Elo ratings][3]
Binaries
----------
Binaries are available [here][1].
All files are compiled statically, no further libraries are necessary.
Compiling
---------
Cinnamon requires C++11, 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-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
make cinnamon-drmemory > Memory monitor
make cinnamon-profiler > Google profiler tool
make cinnamon-gprof > Gnu profiler tool
add:
COMP=compiler > Use another compiler
PROFILE_GCC=yes > PGO build
FULL_TEST=yes > Unit test
LIBSTDC=-static > Link statically libstdc++
License
-------
Cinnamon is released under the GPLv3+ license.
Credits
-------
Cinnamon was written by Giuseppe Cannella at gmail dot com.
[1]: http://cinnamonchess.altervista.org
[2]: http://cinnamonchess.altervista.org/api/2.0/_uci_8h.html
[3]: http://www.computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Cinnamon
[4]: http://www.gnu.org/software/xboard
[5]: http://www.playwitharena.com
[6]: http://triplehappy.com
[7]: https://play.google.com/store/apps/details?id=com.google.android.chess
[8]: http://chessboardjs.com
[9]: http://cinnamonchess.altervista.org/perft.html
Oops, something went wrong.

0 comments on commit 9373e71

Please sign in to comment.