I see that there was a misunderstanding.hgm wrote:This is exactly what is going to change in the future, and why I am bringing this up now:
Previous versions of WinBoard accept just any claim, whenever it is made. If an engine plays Rybka with black, and Rybka plays 1. d4, they can simply send '0-1 { black mates }' and they will go into the tournament result and PGN file as having beaten Rybka.
But, starting with WinBoard_F, future GUIs will verify such claims, and forfeit the game for an engine that makes false claims. The engines acting in the way you will describe will thus likely forfeit games, where their false claims were uncritically accepted before.
To prevent that, be sure to claim your draws in a proper way, e.g.
1/2-1/2 { 3-fold repetition after Kg8 }
The 'after MOVE' part occurring somewhere in the COMMENT field (i.e. between the braces {} ) will from now on be essential for not forfeiting the game (if the current position is not already a 3-fold repeat), where MOVE will have to use the same syntax as would be allowed in the 'move MOVE' command.
When I said that most engines simply do not make a move I meant to
situations when the opponent forced the repetition.
In your example I meant that if black plays Kg8 and force repetition there is no chance that white is going to reply with a move and not with a draw claim so even if white is faster than black then white still draw the game.
I think that the simplest solution is that no engine try to make a move after draw by repetition or draw by the fifty move rule.
Even if there is a winning move the engine can assume that the opponent is smart enough to claim a draw by itself and having code to care for the case that the opponent is stupid seems to me waste of time(it can only be productive in games against humans or buggy engines and humans lose against engines so I see no reason to care about computer-human games).
Uri