Well, I would not consider that "refusing a draw". Just "correcting the score on the result sheet". It does not really refer to draws, but also to win claims (non-existing checkmates or false illegal move claims). So I assumed you were talking about refusing the draw _offer_ (through "offer draw"), which is what we were discussing at the time. If this turns out to be all a miscommunication (caused by your alledged "quoting" not really matching any part of what you now actually say it refers to...), I apologize.bob wrote:Then how about this DIRECT quote from you earlier in this thread:
Do you _still_ maintain that "I am lying when I said that you claimed the GUI could refuse to accept a draw claim (if the claim has no basis)???bob wrote:Does that mean programs can't claim a win draw or loss themselves?hgm wrote:They can claim it, but if the claim has no basis, it will be treated as a 'resign', and the game will be forfeited.
I believe that is exactly what you wrote above.
So we all have to bear our crossess. I personally find it very difficult to discuss with someone that always misrepresents my ideas, and answers like I had written the exact opposite of what I did actually write...I personally find it difficult to discuss this with a child, that can only resort to name-calling when his points get shot down repeatedly.
Grow up...
You fail to make distinction between a draw claim made through a RESULT command, and a draw claim made by "offer draw". What you quote here was referring to the treatment of RESULT claims. They have to be treated that way, as these RESULT claims finish the game, and the only question remaining is what to put on the score sheet.perhaps that is what you _meant_ to write. But the quote above _clearly_ shows it is not _what_ you wrote. You said a draw claim, that is not correct, will be treated as a forfeit "by the GUI" in the above quote. wiggle and dance, your words are there in this thread for all to see. And that idea violates the rules of chess, which is what I have been arguing against since the beginning.
Due to the overloading the "offer draw" command, using it for both "offer draw" and "claim draw", false claims simply cannot occur, let alone be refused or result in forfeit. In situations where a claim would be without basis, it would be understood by the GUI as a genuine offer, which is always allowed, and always passed on to the opponent. (Unless the opponent had already submitted a draw offer himself, in which case it will be understood as "accept draw", and be granted by the GUI.)
Who said you could ask for things?See the bottom of this post for a specific summary of what I have asked for, rather than continuing to make up things you think I want...


This was already explained above. A forfeit is not possible on an overloaded "offer draw", as disambiguating the overloading exactly remove all combinations of conditions where a claim or offer would be without bases or pointless.No, I am speaking as an experienced tournament chess player. You have two issues. If the position is drawn by rule, you stop _both_ clocks and call the arbiter over to have the claim verified. If it is correct, the game is over. If not, he will start your clock if youur claim did not have a move, or he will start the opponent's clock if you gave a move along with the claim. He may penalize you some clock time for the interruption if he sees fit.
If I offer my opponent a draw, he has the option of accepting, explicitly declining the offer by saying "no" or something to that effect, or he can implicitly decline by just playing a legal move and starting my clock.
Combining the two is OK, as that is how ICC does it with no problems. But the two circumstances are entirely different since one ends the game instantly if the claim is upheld, otherwise the game continues. The other ends the game only if the opponent agrees. Nowhere in that do you see a forfeit mentioned. And that is what is unacceptable.
The forfeit only occurs when a game end is forced by the refusal to play on, (expressed in the RESULT command), without basis. Problems like you are imagining here could only occur if separate commands "offer draw" and "claim draw" were created. Basically that would only open the possibility to create irregular situations, raising the problem how to handle them, and add no new opportunities. For this reason alone it is a very bad idea to have separate commands. It is just unfortunate that the overloaded command is called "offer draw", in stead of "request draw".
Yes, and 100,000 years ago the just stuck spears into each other in stead of sitting behind a board pushing wood. Why would you think this is relevant? Protocols can change, but only the protocol that is in force now is relevant, and refusal to abide by it will result in forfeit, even if the same action would not have resulted in forfeit in other or earlier protocols.The winboard protocol does _not_ require that you precede your move with "move". The latest version does, but for many years you just send the SAN move by itself, and winboard/xboard would figure out it was a move to be played and do so.
A program can _always_ end a game instantly. It does not even have to send somthing to the GUI for it. Just executing "exit(0);" does the trick. How would you have the GUI prevent that?I doubt anyone would maliciously claim a draw since it would have no effect on the game, if handled properly. Again, I would be happy to see the result option removed, so that a program can _never_ end a game instantly.
So deprecating the RESULT command does not really serve any purpose. In fact there is a lot to be said for allowing the program a way to bail out of the game while specifying a reason.
It can make a claim, but the game continues until the GUI says it doesn't.
You can already make such a claim through the "offer draw" command (for draws), and the only basis for a win claim would be a checkmate or an illegal move, both of which the GUI wil already have recognized before the engine could send the claim. To claim a loss, you could send "resign".
What would be the purpose of adding commands whose only purpose is to be ignored in cases where they would not do what existing commands already do? I don't see what a second claim command could add, except confusion...
All that can already be done with existing commands. I see little benefit in encouraging or facilitating false claims. Tho err might be Human, but it is not machine-like. Engines can easily be made to do their claiming perfectly, and anything encouriging lazy or sloppy programming (e.g. by just claiming "1-0 { checkmate }" on every move, so you don't actually have to test for checkmate in your engine" I would consider a large step backwards.If both opponents agree, the game ends whether the GUI likes it or not. So draws/wins/losses _BY RULE_ are acceptable circumstances for the GUI to end the game and inform both engines of the correct result. Draws by offer are up to the engines. Invalid claims should be ignored as they will have no effect on the opponent at all...
WRONG EXAMPLE. WinBoard 4.3.13, handling the protocol I described, does consider the claim valid.For the umpteenth time:
I make a move that repeats for the third time. I send a draw claim. Two messages at present. The first is sent, I lose control of the processor, the gui gets the move, sends it to the opponent, who makes a move to escape the 50 move rule counter or the repetition, and when the GUI gets the draw claim, it is invalid.
Before the move it would be passed on to the opponent immediately, as a draw condition would not be detected by the GUI to be present. Now why do you see that as a problem? The opponent either takes the draw before you send your move, saving you the trouble to make one (the GUI would declare "result 1/2-1/2" before you got the chance, with the result you wanted to claim), or the opponent would not react to it, or reacted too late, and you would make your move first. The GUI would then spot the draw condition, and declare draw. In all cases the result would be draw.I can't legally offer my opponent a draw after I make a move, by FIDE rules. Because to offer a draw while my clock is stopped could cause me to incur a penalty from the TD up to and including forfeiting the game because of harassing tactics (if I were to do it repeatedly, for example). So do I offer the draw _before_ I make my move? What if it is a draw claim, but prior to my move, no repetition has been detected. Do you forward it to my opponent as you should, because I can certainly offer him a draw while my clock is running? Do you hold on to it to see if it is a valid claim once you get the move?
Now a real example. I am still waiting.
So you ask for protocol changes. Well, they are not mine to grant. I can only implement the existing protocol definition. Ask someone else.I have asked for the protocol to allow draw offers that can be explicitly or implicitly declined, but _only_ by the opponent. I have asked for the protocol to allow draw claims (by rule) that can be declined, but only by the GUI. I have asked that the GUI follow the FIDE rules of chess, rather than something made up with little forethought about the potential difficulties when using the GUI both in local matches, in online matches, etc...
I don't know where you got the idea that only what you want would be important. In fact I could not care less. You are not even a WinBoard user. I built in features for which there is popular demand, using existing protocol wherever possible. Write your own GUI, and make it as compatible with WinBoard as you can, for all I care. And experience how popular that will make your engine.I have not ask for any of the other stuff you keep saying I want. I definitely don't want a 'super-GUI' that can forfeit an opponent for any reason other than by official rule of chess. FIDE rules even cover illegal moves, if you want to really get picky.. And they do _not_ end the game...