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 = "Texel 1.05" | 15 | name = "Texel 1.05" | 
| 21 | ; program executable | 16 | ; program executable | 
| 22 | 
 | 17 | executable = "texel.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" |