It doesn't matter what he _says_. What matters is what actually happens.Uri Blass wrote:Nobob wrote:So you are saying that _no_ GUI will reject a 1/2-1/2, even if it thinks it is incorrect?hgm wrote:This is not your problem, but that of the GUI author. Stick to the protocol, and trust that the GUI will make _sure_ that you are _never_ wronged.bob wrote:Which means the 1/2-1/2 is unusable, it would seem, because of the well-known race condition between the draw claim (1/2-1/2) and the opponent's move, either of which xboard could receive and process first.
Well, this is what I m saying, so I don't understand your "no". But this is an entirely unrelated problem. It has nothing to do with race conditions, and you cannot avoid it by abstaining from using 1/2-1/2. Because it is the opponent that will continue to make those mistakes, and stupid old GUIs that continue to fall for it.No. I have used xboard for several years to test against other engines. I had found the "invalid result" problem many years ago where programs would screw up the 1-0 vs 0-1 when playing black.
Well, nice for you, but not usable for a GUI. It mght be inconceivable for you, but some people want to play games where Crafty is _not_ one of the players.My version of xboard will accept results from Crafty, but not from any opponent.
Yes, indeed. And at 1300 Elo that is 100 times worse. This is why I added the options -checkMates, -testClaims, and -materialDraws to XBoard, so that you don't have to depend on any claim, if you don't want to.My original referee did this and all worked perfectly. Until someone wanted to see me play a big round-robin which would mean Crafty would not participate in every game played. I then had to modify my referee to keep the game state and end the game on 50-move rule draws or repetitions, regardless of what the players did or did not claim. It's amazing to me how many existing programs are unaware of the 50 move rule, as one example.
There is no known GUI that has this behavior.If I have to send my move first, my opponent can reply and break the draw condition before my draw claim (1/2-1/2) is even seen, and when it comes in, and is rejected, I lose.
I understand that
H.G.M is saying that no existing gui is going to reject a draw claim after making a move that leads to draw by repetition or the fifty move rule.
If
(1) A GUI has an option, whether on by default or settable, to validate these "result strings" to prevent a program from cheating and claiming a win when it is losing;
and
(2) it doesn't understand the potential race condition where I send a move, and a draw claim, but the opponent sends an instant reply after my move, and before the GUI sees my draw claim;
and
(3) the GUI doesn't understand that if the race occurs, the draw claim will come at a point where it appears to be invalid since my opponent has already made a move that invalidates the draw claim;
and
(4) The GUI does not then back up the internal game state by unmaking the opponent's move, and then see if the draw claim is valid (which it will be);
then
There is going to be a problem. Even winboard has a result verification option according to HGM. So if one turns that on, and encounters the race condition, will the result be properly declared or rejected. I have not looiked at his code, but old xboards did not try to back up the game and there was no code for that, however it would accept the result whether correct or not.
So whether or not any other GUI has a problem or not is not something I believe any single person can say with absolute certainty. It is not my imagination. And it is not going to go away unless the protocol explains the problem and what the GUI needs to do to avoid it.
If a GUI is only proactive and ends the game when a possible draw condition arises, then this won't be an issue. But I would hope that there are _some_ GUIs out there that play by FIDE rules, so that a human can continue to play on rather than claiming a draw if he so chooses. And if the GUI does not end the game at the first drawing condition, the race can occur. And if it validates the claim, the race can cause a loss when it is not a correct result.
I do not believe the FIDE rules require that I know that I mated my opponent. In fact, I have played quite a few moves over the years that turned out to be mate because of a piece across the board attacking what I thought was an escape square for my opponent. It is my understanding that if you mate your opponent, the game ends immediately. I will try to look this up tomorrow to see if the FIDE rules address the case where I write down a move that unknowingly gives mate, and then stop the clock and ask the arbiter to come over and verify my draw claim, what will happen when he notices that it is a mate. I believe he will use that result.
The only funny exception(mentioned originally by H.G.Muller) that is not what you meant may be if the move mates the opponent and also leads to 100 plies with no conversion and unlike human play this is a case to care about because computers may claim a draw by the 50 move rule because of a bug even when they mate the opponent and it is not clear if the gui should give a draw or a win for the engine.
I understood that in computer games the only case of rejecting 1/2-1/2 because the opponent made a move is in ICS and
I see no problem even with ICS if you simply add offer a draw before making the move when you simply claim a draw after it.
Uri