lichess.org
Donate

Game adjudicated incorrectly (dead position)

@hangrad
1. You could post that to the thread about endgames.

2. In this particular position, white's only possible move makes the game a draw because of insufficient material. I am not ignorant of FIDE rules. Losing at endgames does not necessarily mean not knowing chess rules.
The problem with post #1 is next forced move is 69. Nxh8. King and knight vs king alone must be draw.
King and rook vs king and knight is usually a draw unless knight can be trapped lost because king cannot help.
There are some corner mates though. In chess, no matter how much advantage you have, you can usually lose if you are careless enough.
Here is my most annoying recent loss:

It's a good reminder for me to always play with an increment. I believe having an increment would solve the first poster's problem.
In fact this is a case where FIDE says "draw", there's no legal way to mate for either side.

It's one of the rare false positive/false negative examples on lichess. Even so pawns on a4, c4, e4, g4 plus Bf3 vs. a5, c5, e5, g5 plus Bf6 and King in the "own" half.

To difficult to implement, it requires a tiresome check before determing the result.
@hangrad

The thing is not that R vs N is a draw or not, it is that no side can mate in the FINAL POSITION. There is no legal sequence of moves leading to a checkmate = draw. Easy.
#14 Indeed, I did my best to handle this detection and this is a false positive ("knight can mate") which requires a search to resolve.

I'm still working on making SF (or any engine) capable of quickly searching for helpmates and my progress on making something satisfactory is very slow. :-(
@Toadofsky #16 This is not as complicated as it looks.
You have local Stockfish analysis available already.
If one player runs out of time, turn on local analysis and see what moves are available for that player.
If all legal moves by player who run out of time result in a position where there is insufficient material for other side (such drawn position is defined already by Stockfish) then declare draw.
Else, the player who run out of time loses the game. You need to find only one not suitable position to stop the search and declare loss for the player who runs out of time.

It is not necessary to calculate if help mate is actually available. The presumption is that such mate exists. Stockfish needs to be convinced such sequence does not exist to declare draw.
Stockfish needs to see only forced moves sequence. This already exists in tactics trainer here.

I hope this helps.

This should be easy to do for any developer who works on lichess Stockfish.
#17 How does any chess engine detect helpmates? Generally speaking engines attempt to find the best moves for both players.
Should technically be a draw according to FIDE rules, but this type of loss is extraordinarily uncommon, so I don't think this is really an issue. Probably occurs 1/100,000 games or so.

Maybe if there's an easy fix, then sure, fix it. But I don't think it's worth devoting to many resources to finding every possible one of the positions just for that 1/100,000 game.
It would be cool though. I donno if its even possible to detect these cases by using reasonable resources. But it would be cool.

This topic has been archived and can no longer be replied to.