Rev 151 | Rev 178 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 151 | Rev 154 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 |
|
1 | ; Chess engine configuration file for Chess Giants. |
| 2 | 2 | ||
| 3 |
|
3 | ; Chess Giants is engine-agnostic, which means it can handle any CECP-compliant |
| 4 |
|
4 | ; engine, and virtually any state-based engine that communicates using newline- |
| 5 |
|
5 | ; terminated ASCII strings over standard IO (stdin/stdout). All it needs is to |
| 6 |
|
6 | ; read this configuration file to learn how to talk to the engine, and how to |
| 7 |
|
7 | ; interpret the engine's replies. |
| 8 | 8 | ||
| 9 | # IMPORTANT: UCI engines are "stateless" engines. These engines work in a very |
- | |
| 10 | # different way and therefore an adapter program such as Polyglot must be used. |
- | |
| 11 | # Here is an example of how a UCI engine can be used with Chess Giants thanks |
- | |
| 12 | # to the Polyglot protocol converter (see also the polyglot.ini file). |
- | |
| 13 | - | ||
| 14 |
|
9 | ;############################# |
| 15 |
|
10 | ;# Basic program information # |
| 16 |
|
11 | ;############################# |
| 17 | [program] |
12 | [program] |
| 18 | 13 | ||
| 19 | ; program display name |
14 | ; program display name |
| 20 | name = "Senpai 1.0" |
15 | name = "Senpai 1.0" |
| 21 | ; program executable |
16 | ; program executable |
| 22 |
|
17 | executable = "senpai.exe" |
| 23 | ; optional program arguments |
18 | ; optional program arguments |
| 24 | arguments = "" |
19 | arguments = "" |
| 25 | 20 | ||
| 26 |
|
21 | ;######################### |
| 27 |
|
22 | ;# Reply string patterns # |
| 28 |
|
23 | ;######################### |
| 29 | [reply strings] |
24 | [reply strings] |
| 30 | 25 | ||
| 31 | ; the following pattern immediately precedes a SAN-encoded move reply |
26 | ; the following pattern immediately precedes a SAN-encoded move reply |
| 32 |
|
27 | move = "bestmove " |
| 33 | 28 | ||
| 34 |
|
29 | ;################################################## |
| 35 |
|
30 | ;# Engine commands (separate each by a semicolon) # |
| 36 |
|
31 | ;################################################## |
| 37 | [commands] |
32 | [commands] |
| - | 33 | ; Special strings: some strings enclosed between ${...} are converted during |
|
| - | 34 | ; the game to dynamic values. We call this "variables". Here is the list: |
|
| - | 35 | ; ${MAX_CORES} -- will be expanded to the maximum number of CPU cores to use |
|
| - | 36 | ; ${CURRENT_POS} -- will be expanded to the full FEN string of the current pos |
|
| - | 37 | ; ${SEARCH_DEPTH} -- will be expanded to the maximum allowed search depth |
|
| - | 38 | ; ${LAST_MOVE} -- will be expanded to the last move in long algebraic notation |
|
| - | 39 | ; ${GAME_HISTORY} -- will be expanded to the game history in long algebraic |
|
| 38 | 40 | ||
| 39 | ; command(s) to send to prepare the engine for a new game |
41 | ; command(s) to send to prepare the engine for a new game |
| 40 |
|
42 | new game = "uci;ucinewgame;setoption name Threads value ${MAX_CORES}" |
| - | 43 | ||
| 41 |
|
44 | ; command(s) to send to setup a board (using a raw FEN string) |
| 42 |
|
45 | setup table from fen = "position ${CURRENT_POS}" |
| 43 | ; command(s) to send to set the max search depth (%d replaced by an integer value) |
- | |
| 44 | search depth set = "sd %d" |
- | |
| - | 46 | ||
| 45 | ; command(s) to send to order the engine to start playing (when switching sides) |
47 | ; command(s) to send to order the engine to start playing (when switching sides) |
| 46 |
|
48 | play = "position startpos moves ${GAME_HISTORY};go depth ${SEARCH_DEPTH}" |
| - | 49 | ||
| 47 |
|
50 | ; command(s) to send to instruct the engine that its opponent played a move |
| 48 |
|
51 | move = "position startpos moves ${GAME_HISTORY};go depth ${SEARCH_DEPTH}" |
| 49 | move = "%s" |
52 | |
| 50 |
|
53 | ; command(s) to send to order the engine to change its last move and force one |
| 51 | ; a specific move instead (%s replaced by a 'b1c3'-style encoded move string) |
- | |
| 52 |
|
54 | force move = "" |
| - | 55 | ||
| 53 | ; command(s) to send to tell the chess engine to cleanup and quit. if unset, |
56 | ; command(s) to send to tell the chess engine to cleanup and quit. if unset, |
| 54 | ; its process will be killed, but at the risk of not saving important data. |
57 | ; its process will be killed, but at the risk of not saving important data. |
| 55 | quit = "quit" |
58 | quit = "quit" |