Don wrote:What point is there giving a list of things that we agree on?
Well, for the record: this was a list I pertinently do not agree on, where each item can be disproven by hard fact of the UCI specs...
FIDE has no pass rule. You cannot say, "I do not wish to move, it's your turn."
No, but it has a rule that you can say "I do not wish to move, so we are done with this game". This is also known as "resigning" (in most contexts).
I don't think you realize that what you are doing is imposing your own interpretation of what it must mean. It's not even consistent either, because you say it means "claim draw" in one context and "resign" in another.
So why is this suddenly a problem? Others are claiming 'bestmove 0000' means there are no legal moves, i.e. checkmate in one context, stalemate in another. (I am not sure what is your position in this.) And doesn't 'bestmove e2e4' mean move e2 to e4 in one context, and forfeit by illegal move in another? (Or have you abandoned the idea that a GUI should do legality checking, and always accept the move?) Doesn't the meaning of a move always depend on the context?
But I still think you don't address the real point. Which is this:
The UCI specs very explicitly state that the engine can send a null move to the GUI. So there must be a situation where the engine should do this. I am merely making a best effort to deduce what this situation could be, in all likelihood. Which is a tad different from just dreaming up things out of nothing, as others so frequently do here.
You are very vocal in criticizing me, but what is your 'best effort' to assign a use to the 0000 the specs mention? That the author of the specs had no idea what he was talking about, and just felt like adding some 'glitches' to the specs to confuse people? That doesn't sound very credible to me...
In other words YOU are making up a new FIDE rule that you are not allowed to resign if the position is a repetition? So you either have to claim the draw, or play on, but only in that one specific case you are not allowed to resign?
This is actually the first argument you give that 'carves any wood'. But only very little. Who would want to resign if you can claim a draw?
I am not making up any new FIDE rules, by the way. The worst you can accuse me of is that in the interpretation of the UCI specs I consider most likely, the protocol is still not perfect, unable to handle the contrived situation that you would want to resign in a position where you can claim a draw. OK, so resign one move earlier, then! This is not nearly as defective implementation of FIDE rules as your version, where the draw is automatic. Because then you can also not resign in that same drawn position. And you cannot play on there. And you cannot resign one move earlier... That UCI sucks is of course no news, but why would you want it to suck that much?
And you consider this the official meaning of the 0000 stuff but we are making things up?
The 0000 is completely illogical. First of all you MUST play a move by the FIDE rules to claim a draw. You don't just say, "my move is to claim a draw" but you say, "with this move I claim a draw by repetition."
No, no, no! You only have to say that if the repetition occurs AFTER the move. If the opponent plays a move that brings on a repetition, and does not claim by himself, then you can indeed claim without moving.
I admit that there still is a difficulty in claiming repetitions after the move. Even WB protocol sucks in that respect, and must make use of a kludge. (Making it impossible to OFFER a draw in a position where you can claim one. Believe it or not, I actually received a complained about an engine that intended to claim a draw under WinBoard, but in stead was given a draw by agreement, because the opponent had a draw offer pending. He did not want to take that offer, but in stead play a move to claim a draw...)
Secondly, you don't ask a player what his move is in a position where there is no legal move.
You ask him to concede that he has lost... When I play Chess I always make the mating move on the board and press the clock (although I am aware that the latter is not strictly needed, but just so that there is no discussion possible afterwards if I made the move within time or not). I do not stand up from the board, go to the TD, and whisper in his ear "I can mate my opponent, please write 1-0 on the match form". I don't know how you do it...
I argue that it's a bug in the GUI to do that and that there should not be a provision to respond to a bug in such an ill-defined way in the protocol either. I'm ok if the spec says you respond to a position with no legal moves with 0000 - but the UCI doesn't say that.
OK, great. Because we actually do agree on that. There is no point in sending the engine such a position. (But beware, the engine could bring it upon itself to request that move as a ponder move! I would also consider it extremely bad form when the GUI would overrule the ponder move specified by the engine, and substitute its own.)
But given your stance on this, that UCI forbids sending of such positions to the GUI for the purpose of actually moving (as opposed to pondering)... What is the intended function of the 0000 the engine could send to the GUI, according to the specs? In what situation that is not forbidden by the protocol must the engine send this?
You don't consider it strange that the protocol specs make an explicit provision for what the engine must do in a situation that according to the same specs would be (implicitly) forbidden to create? That is what I would call 'inconsistent'.
Consistent is to either assume that the GUI should send such positions to the engine (to inform it of the way the game ended, so the engine can use it as a trigger for its learn code, say), and the engine should respond with 'bestmove 0000' (which I agree the specs do not say), or to assume that it is indeed a GUI bug, and the 0000 must be intended for
something else (but what?).