by H.G.Muller » 08 May 2008, 08:12
If you specify a number of moves M > 0, WinBoard will add the same time as you originally after M moves or every multimple of M moves. The engine can plan for this, but does not recieve a new 'level' command. It does get notified of the extra time, though, as the 'time' command specifies how much time is left until the next possible flag event. But it does not tell how many moves it has to live on this time. And this is of course very relevant for the engine to know how to wisely spend it. So you must keep trach of that yourself.
Unlike what the protocol description says, white and black have their own clocks, and if you suddenly let an engine play the other color (by giving an extra 'go' command during the opponent's turn) it inherits the time left on the opponent's clock. For counting the moves to know where to expect your next time quota, always count from the beginning of the game.
You are encouraged to implement the 'level' command such that your engine does a sensible thing when future WB versions would send it during a game. E.g. if you were playing 40/60', and after move 40 you would recieve "level 60 90 0" you should realize that the next new time quota will come at move 60 (in stead of 80). The TC parameter of the 'level' command can basically be always ignored, as WB in practice sends 'time' commands before every move. But the 'level' command is essential for knowing how long you have to last on this time.