tim and otim confusion
Posted: 29 Apr 2009, 07:30
I am confused about one part of the winboard protocol... It says that whenever the GUI sends the command 'time N' it means this is the clock associated with the engine, and 'otim N' is associated with the opponent. It says nothing of white or black.
It's probably because my engine has no sense or white of black, but im confused. In my engine, the AI will play as soon as it encounters the 'go' command or when the opponent moves (provided force=false). It will play as the next player on move. So it doesn't really know whether it's white or black.
Winboard, confusingly sends the timer commands in two different fashions:
Considering white to play before these commands were sent, the first set of commands sets 'time N' for black because that is what winboard thinks the engine is playing and the second set of commands sets 'time N' for white because it wants the engine to GO playing as white.
Now when these time and otim commands are received before either the usermove or go command, how can one figure out which side the time is for?
The only possible solution I can find is to always associate a role for my engine (Black, White, or nobody) so that I can interpret 'time' as clock for the role of the engine... but I want to know if it is possible any other way (or if my conclusions were wrong in any way).
It's probably because my engine has no sense or white of black, but im confused. In my engine, the AI will play as soon as it encounters the 'go' command or when the opponent moves (provided force=false). It will play as the next player on move. So it doesn't really know whether it's white or black.
Winboard, confusingly sends the timer commands in two different fashions:
- Code: Select all
time N
otim N
usermove MOVE
- Code: Select all
time N
otim N
go
Considering white to play before these commands were sent, the first set of commands sets 'time N' for black because that is what winboard thinks the engine is playing and the second set of commands sets 'time N' for white because it wants the engine to GO playing as white.
Now when these time and otim commands are received before either the usermove or go command, how can one figure out which side the time is for?
The only possible solution I can find is to always associate a role for my engine (Black, White, or nobody) so that I can interpret 'time' as clock for the role of the engine... but I want to know if it is possible any other way (or if my conclusions were wrong in any way).