| State |
Command |
Engine Activity/Output |
Next State |
| START |
xci |
action : initialization, identification, and notification of supported options/custom info
id name
id author
id country
id about
...
id about
option
...
option
info name
...
info name
readyok
|
WAIT |
| WAIT |
position |
action : set new position (and assume in new game/fragment)
|
WAIT |
| move |
action : make move on internal board
|
WAIT |
| level |
action : inform engine of full time control
|
WAIT |
| setoption |
action : set option to specified value
note : if option is XCI_Variant, can assume that will get a new position command before next go command
|
WAIT |
| isready |
action : synchronize GUI and engine
readyok
|
WAIT |
| result |
action : inform engine of game result
|
WAIT |
| getbook |
action : get book info
info book ...
|
WAIT |
| getstartpos |
action : get start position (useful for new variants currently without official GUI support)
info startpos ...
|
WAIT |
| getmovelist |
action : get legal move list for current position
info movelist ...
|
WAIT |
| getresult |
action : get result for current position (i.e., win, loss, draw, inprogress)
info result ...
|
WAIT |
| go ponder |
action : start pondering (optional)
info ...
|
PONDER |
| go infinite |
action : start analyzing (which might be different from THINK-style computation, e.g., symmetric vs asymmetric eval)
info ...
|
ANALYZE |
| go (without ponder or infinite) |
action : start thinking (with goal to produce best move given current position and current state of the game)
info ...
offerdraw (optional)
acceptdraw (optionl; only if go command contained drawoffer)
|
THINK |
| quit |
action : shut down as soon as possible
|
END |
| THINK |
stop |
action : stop thinking and send best move
bestmove ...
|
WAIT |
| bestmove (from engine) |
action : engine sends best move and stops computation
|
WAIT |
| resign (from engine) |
action : engine resigns and stops computation
|
WAIT |
| isready |
action : synchronize GUI and engine
readyok
|
THINK |
| PONDER |
stop |
action : stop pondering
readyok ...
|
WAIT |
| isready |
action : synchronize GUI and engine
readyok
|
PONDER |
| ANALYZE |
stop |
action : stop analyzing
bestmove ...
|
WAIT |
| isready |
action : synchronize GUI and engine
readyok
|
ANALYZE |
| (any) |
error (from engine) |
action : engine has error (although shouldn't really happen too much)
|
WAIT |