Moderators: hgm, Andres Valverde
Zach Wegner wrote:Does your engine report mate before or after it makes the move? It should be after. I don't use this feature myself ATM, so I can't tell you if I've seen the same behavior.
H.G.Muller wrote:Indeed verify claims is not designed to work if detect mates is not switched on. But I did not really prevent switching it on if detect mates is off, and this could be considered a bug. Is this really a desirable mode?
Internally, the mates are detected as the move comes in, the claim comes in only later, in a separate message. For detection of draws, a draw condition (like 50-move or 3-fold rep) which is determined when the move comes in, is left in the e.p. status code of the position, (because you can never do an e.p. capture in a repeat or 50-move situation anyway), when rule Moves are set to > 50 or the drawRepeats to > 3. Draw claims are later verified against this.
I guess I could use the same strategy for handling mates. Always do the mate test, but leave the mate code in the e.p. status if detect mates is off, and check RESULT claims against it when these come in. A wrong claim here should not lead to forfeit, however, as the game is already officially finished when the mating move is done. Butthe claim should be corrected.
This is the reason why I did not support this combination of options: if in case of a wrong claim you would take the WinBoard adjudication result anyway, why not simply detect the mates in the first place? But it might be useful for testing if the mate claiming in engines works, of course. (But who wants the engines to claim mates if WinBoard can already detect them? The whole idea that engines must claim the mates is ridiculous, and a violation of FIDE rules.)
H.G.Muller wrote:Indeed verify claims is not designed to work if detect mates is not switched on. But I did not really prevent switching it on if detect mates is off, and this could be considered a bug. Is this really a desirable mode?
Internally, the mates are detected as the move comes in, the claim comes in only later, in a separate message. For detection of draws, a draw condition (like 50-move or 3-fold rep) which is determined when the move comes in, is left in the e.p. status code of the position, (because you can never do an e.p. capture in a repeat or 50-move situation anyway), when rule Moves are set to > 50 or the drawRepeats to > 3. Draw claims are later verified against this.
I guess I could use the same strategy for handling mates. Always do the mate test, but leave the mate code in the e.p. status if detect mates is off, and check RESULT claims against it when these come in. A wrong claim here should not lead to forfeit, however, as the game is already officially finished when the mating move is done. Butthe claim should be corrected.
This is the reason why I did not support this combination of options: if in case of a wrong claim you would take the WinBoard adjudication result anyway, why not simply detect the mates in the first place? But it might be useful for testing if the mate claiming in engines works, of course. (But who wants the engines to claim mates if WinBoard can already detect them? The whole idea that engines must claim the mates is ridiculous, and a violation of FIDE rules.)
Ferdinand wrote:I got a different case, this time I set the VEC and DM both to true.
[diag]8/8/8/5k1n/2n5/8/5K2/8 w - - 3 53 [/diag]
deuterium 08.01.26.270-RomiChess P3K
The last move was Nxh5 by RomiChess.
RomiChess then claimed this as draw, but the resulting adjudication was different, it says: {False draw claim: 'Romi says, we're all out of ammo'} 1-0
Winboard awarded the game to Deuterium
H.G.Muller wrote:Ferdinand wrote:I got a different case, this time I set the VEC and DM both to true.
[diag]8/8/8/5k1n/2n5/8/5K2/8 w - - 3 53 [/diag]
deuterium 08.01.26.270-RomiChess P3K
The last move was Nxh5 by RomiChess.
RomiChess then claimed this as draw, but the resulting adjudication was different, it says: {False draw claim: 'Romi says, we're all out of ammo'} 1-0
Winboard awarded the game to Deuterium
Well, KNNK is not a claimable draw, according to FIDE rules. There is a sequence of legal moves that leads to checkmate. So this is a false claim, and WinBoard is correct. I think Michael has been made aware of this Romi bug.
Ferdinand wrote:I think you miss this case, RomiChess has KNN and Deuterium has K only, and yet RomiChess claimed it as draw. RomiChess can not be defeated in this case bacause Deuterium has no pieces, and yet winboard adjudication gave the win to Deuterium
Teemu Pudas wrote:Ferdinand wrote:I think you miss this case, RomiChess has KNN and Deuterium has K only, and yet RomiChess claimed it as draw. RomiChess can not be defeated in this case bacause Deuterium has no pieces, and yet winboard adjudication gave the win to Deuterium
Claiming a draw with the RESULT command is like claiming a draw and immediately leaving the game even if the claim is rejected, so a false claim should always lose.
0.5-0?
Ferdinand wrote:I think you miss this case, RomiChess has KNN and Deuterium has K only, and yet RomiChess claimed it as draw. RomiChess can not be defeated in this case bacause Deuterium has no pieces, and yet winboard adjudication gave the win to Deuterium
H.G.Muller wrote:
Ah, I missed that indeed. I remember a similar issue came up in the Chess War Promo (a false claim against an opponnt that was reduced to a bare King). We discussed it briefly, but without a clear reolution.
I am not sure what the FIDE rules say about this. If you for instance forfeit on time agains a bare opponent, is it a loss or a draw? Who knows this? And how about resigning? If the opponent of a bare King resigns, does he still lose?
It is easy enough to test all wins always for the winner not having a bare King, and correct them to draws, when verify claims is on. (It would be a lot more difficult to sort by kind of win, as the details field in the RESULT command is kind of free format, people could print any message there.
H.G.Muller wrote:
I am not sure what the FIDE rules say about this. If you for instance forfeit on time agains a bare opponent, is it a loss or a draw? Who knows this? And how about resigning? If the opponent of a bare King resigns, does he still lose?
Ferdinand wrote:Can you elaborate further, I did not get what you mean.
FIDE Laws of Chess, Article 12.8 wrote:
Persistent refusal by a player to comply with the Laws of Chess shall be penalised by loss of the game. The arbiter shall decide the score of the opponent.
H.G.Muller wrote:Ferdinand wrote:I got a different case, this time I set the VEC and DM both to true.
[diag]8/8/8/5k1n/2n5/8/5K2/8 w - - 3 53 [/diag]
deuterium 08.01.26.270-RomiChess P3K
The last move was Nxh5 by RomiChess.
RomiChess then claimed this as draw, but the resulting adjudication was different, it says: {False draw claim: 'Romi says, we're all out of ammo'} 1-0
Winboard awarded the game to Deuterium
Well, KNNK is not a claimable draw, according to FIDE rules. There is a sequence of legal moves that leads to checkmate. So this is a false claim, and WinBoard is correct. I think Michael has been made aware of this Romi bug.
I admit the draw claim verification is not perfect, but KNNK is not amongst the problem cases.
H.G.Muller wrote:OK, I solved the problem as follows:
Verify Claims can now be turned on even when Detect Mates is off. (Of course Legality Testing still has to be on.) Even when DM is off, WinBoard tests if a move results in a mate after every move, but if it is, and DM was off, it just rembers the result (checkmate or stalemate) with the position (in the variable where it normally remembers e.p. status), just like it remembers if there is a 50-move, 3-fold-rep or insufficient-mating-material condition. When an engine claims, and VC is on, the claim is then checked against this remembered result, and changed into a loss when the claim turns out to be false.
After this whole process, when the result is not a draw, the pieces of the alleged winner are counted. If the count is <= 1, the result is corrected to draw. WinBoard will append the words "but bare king" to the result-details message. This happens even when legality testing is off, and not just to engine claims, but also to xboard adjudictions. But only if VC is on.
So in the Romi case, we would get the message:
{False draw claim: 'we are all out of ammo' but bare king} 1/2-1/2
When white would have claimed, however, it would remain a loss. Similarly you could get
{white loses on time, but bare king} 1/2-1/2
{engine 'buggy.exe' exited unexpectedly but bare king} 1/2-1/2
{black resigned but bare king} 1/2-1/2
The improved executable is hidden in the usual place.
H.G.Muller wrote:I am not sure what the FIDE rules say about this. If you for instance forfeit on time agains a bare opponent, is it a loss or a draw? Who knows this?
Return to WinBoard development and bugfixing
Users browsing this forum: No registered users and 13 guests