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 = "Toga II 1.3.4" |
15 | name = "Toga II 1.3.4" |
21 | ; program executable |
16 | ; program executable |
22 |
|
17 | executable = "toga.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 |
|
24 | [reply strings] |
30 | - | ||
31 | ; the following pattern immediately precedes a SAN-encoded move reply |
- | |
32 | move = "move " |
- | |
33 | 25 | ||
- | 26 | ; the following pattern immediately precedes a SAN-encoded move reply |
|
- | 27 | move = "bestmove " |
|
- | 28 | ||
34 |
|
29 | ;################################################## |
35 |
|
30 | ;# Engine commands (separate each by a semicolon) # |
36 |
|
31 | ;################################################## |
37 |
|
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" |