Well, that is wrong. You should not be waiting to send amove, but waiting to recieve one. In Chess white usually moves first, and you should wait your turn. So send the move only after you received the white move (or "go").mike_bike_kite wrote:The move is waiting to be sent but I'm not sure when to send it.
I don't see from what you conclude that last statement. The engine should wait for a move or 'go'. But it gets neither (apparently because you do not enter a white move to the GUI and do not click "Mode -> Machine White" there). So it keeps waiting, as it should.I was sort of expecting that the program should wait until it gets sent a "go" before sending a move (if it's white) or should just reply with a move if it's given a move (black). Obviously this is not the case.
If it is not the engine's turn, it should wait until it gets to be its turn. Either because a move is done and the other side gets the turn, or because the side it is playing for is changed through a 'go' command to the side that currently has the move.
Some examples (unfortunately posting them messes up the tabbing, so I am not sure they are still readable ):
Code: Select all
// sample 1: engine plays black, ponder on
GUI->engine engine->GUI REMARKS
xboard some engines use this to switch out of stand-alone or UCI mode
protover 2 invite engine to send feature command
feature memory=1 engine tells GUI how it wants to be treated
feature ping=1
feature setboard=1
feature analyze=0
feature option="Resign -check 0"
feature done=1
accepted memory let engine know GUI supports the requested features too
accepted ping
accepted setboard
accepted analyze
rejected option Resign GUI apparently does not support engine-defined options
accepted done engine has sent all its features; proceed immediately
memory 64 engine supported memory command, so tell it to use 64MB
new start a game
level 40 1 0 40 moves/min
post enable thinking output
hard ponder on
ping 1 engine supported ping,check whether it received 'new'
time 6000 6000 centi-seconds on engine's clock
otim 6000 opponent's clock
g2g4 white move
pong 1 engine has seen ping 1,so what followsmust be from the current game
1 5 0 21 e7e5 engine thinking output (in response to 'post' command)
2 1 0 380 e7e5 g1f3
3 6 1 625 e7e5 g1f3 b8c6
move e7e5 engine moves
1 5 0 1 (g1f3) b8c6 and starts pondering
2 2 0 30 (g1f3) b8c6 f1c4
time 5989
otim 5800
f2f4
1 20 0 30 d7d5
2 29999 0 45 d8h4
move d8f4
0-1 {checkmate} engine claims game
result 0-1 {checkmate} notify engine of game result
// Protocol v1 engine plays white non-ponder game, using GUI book
GUI->engine engine->GUI REMARKS
xboard some engines use this to switch out of stand-alone or UCI mode
protover 2 invite engine to send feature command
new engine does not respondwithin reasonable time; start a game
level 40 1 0 40 moves/min
nopost disable thinking output
hard madness: first switch ponder on
easy and then off again (to accomodate non-compliant engines that toggle on 'easy')
force put engine in force mode
e2e4 load book moves
e7e5
g1f3
b8c6
f1c4
f8c5
e1g1 enter castling as King move!
a7a5
time 6000 6000 centi-seconds on engine's clock
otim 6000 opponent's clock
go set engine to play current stm (which is white)
move g8f6
time 5930
otim 5999
f3g5
move d7d5
time 5820
otim 5900
g5f7
move e8f7
result 1-0 {white resigns}
// engine plays white FRC game
GUI->engine engine->GUI REMARKS
xboard some engines use this to switch out of stand-alone or UCI mode
protover 2 invite engine to send feature command
feature done=0 engine informs GUI it is going to require some time (initializing tablebases)
feature memory=1 ping=1 setboard=1 send several features in one command
feature variants="normal,fischerandom"
feature egt="nalimov,gaviota,scorpio"
feature usermove=1 done=1
accepted done let engine know GUI supports the requested features too
accepted memory
accepted ping
accepted setboard
accepted variants
accepted egt
accepted usermove
accepted done
memory 68
egtpath nalimov H:\tablebases machine has nalimov tablebases installed at given location
egtpath scorpio F:\chess\bitbases machine has scorpio bitbases installed at given location
new start a game
variant fischerandom FRC game
setboard qrnnbkrb/pppppppp/8/8/8/8/PPPPPPPP/QRNNBKRB w GBgb - 0 1 initial position
level 40 1 0 40 moves/min
nopost disable thinking output (mainly so I don't have to type it here...)
hard ponder on
ping 1 engine supported ping,check whether it received 'new'
time 6000 6000 centi-seconds on engine's clock
otim 6000 opponent's clock
go set engine to play stm (= white here)
move O-O in FRC, use O-O and O-O-O for castling
time 5900
otim 5820
usermove g7g6 engine requires 'usermove' keyword to recognize input moves
move g2g3
// analysis with engine
GUI->engine engine->GUI REMARKS
xboard some engines use this to switch out of stand-alone or UCI mode
protover 2 invite engine to send feature command
feature analyze=1 ping=1 setboard=1
feature san=1 madness: engine requires SAN input
feature done=1
accepted analyze let engine know GUI supports the requested features too
accepted ping
accepted setboard
accepted san
accepted done
new start a game
level 40 1 0
post
hard
easy
setboard 4k3/8/8/8/8/8/4P3/4K3 w - - 0 1 relay the user set-up position to engine (leaves engine in force mode)
analyze switch engine to analyze mode
1 130 0 8 1.e4 analysis output (in SAN with move numbers, but is free format)
2 127 0 20 1.e4 Ke7
3 130 1 98 1.e4 Ke7 2.Ke2
Kf2 user entered move, sent as SAN because engine requested feature san=1
1 -125 0 6 1...Ke7 analysis of new position
2 -130 0 25 1...Ke7 2.e4
Ke7 new user move
1 125 0 1 2.e4 analysis of new position
2 123 0 2 2.e4 Ke6
3 125 0 16 2.e4 Ke6 3.e5
undo user took back Ke7
1 -125 0 6 1...Ke7 analysis of old position
2 -130 0 25 1...Ke7 2.e4
exit stop analyzing,leaves engine in force mode
quit terminate engine process
// starting from setup position
GUI->engine engine->GUI REMARKS
xboard some engines use this to switch out of stand-alone or UCI mode
protover 2 invite engine to send feature command
feature ping=0 setboard=0 send several features in one command
feature done=1
accepted ping let engine know GUI supports the requested features too
accepted setboard
accepted done
new start a game (sets white to move)
force prevent engine will start playing after a2a3
a2a3 kludge to set black to move
edit engine did not support setboard, so use edit command
# clear board
Ke1 put white King
Pe2 put white Pawn
c switch to black
Ke8 put black King
. leave edit mode (black is still to move; editing the board did not change that)
level 40 1 0 40 moves/min
nopost disable thinking output
hard ponder on
time 6000 6000 centi-seconds on engine's clock
otim 6000 opponent's clock
go set engine to play stm (= black here)
move e8e7 engine moves for black
// Note that most engines send a truckload of non-compliant garbage to the GUI, that should be ignored. Like
Hello, this is Xxxx, have a nice game!
start searching
pondering on move d7d5