The ChessMate is an AVR ATmega328P running at 25 MHz with chess Engine based on recursive negamax search micro-Max 4.8 by H.G. Muller [1] (hash table removed by Andre Adrian).
Our contribution are the following features:
- Included Threefold repetition rule using Compact Chess Representation of history boards (C.C.R.) [2], we made it valid for the last 15 boards with 32 bytes per board; so the history boards occupies 480 bytes of RAM.
- Included the Fifty-move rule check (from fairy-Max [3]).
Processing Speed:
- For instance, the 32-bit test version of Rybka on AMD 64-bit CPU running on 2.4Ghz achieves 104 Knps (thousands of nodes per second) [2].
- The ATmega328P ChessMate at 25 MHz approach, can reach ~ 1.3 Knps (1298.1 nodes/s).
A node refers to a branch of play the computer investigated.
The following figure shows the nodes investigated versus move number (the engine was playing against itself):
FIGURE A1 - Nodes versus Move number (Chess engine playing against itself)
This table refers to the FIGURE A1 at Level 6 (Recursion Limit =1000)
Move | Thinking time (ms) | Nodes (depth) |
2 | 1233.32 | 1607 |
3 | 832.46 | 1053 |
4 | 3677.23 | 4859 |
5 | 1112.74 | 1464 |
6 | 1902.34 | 1021 |
7 | 1003.01 | 1302 |
8 | 6715.34 | 8619 |
9 | 4198.38 | 5324 |
10 | 4250.11 | 5417 |
11 | 1649.48 | 2035 |
[1] - Micro-Max, a 133-line Chess Source
[2] - Vladan VUCKOVIC, "AN ALTERNATIVE EFFICIENT CHESSBOARD REPRESENTATION BASED ON 4-BIT PIECE CODING"
[3] - Fairy-Max: an AI for playing user-defined Chess variants
Can you please provide me the hex file? I am new to AVR compilers. If the hex file will work in Arduino Uno? Thanks in advance!