Tragic comedy in pondering

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Tragic comedy in pondering

Post by Ferdy »

Deuterium plays a tour in https://www.g-sei.org/i-g-w-t/. In one of those games it played a move and a ponder move where the ponder move leads to stalemate.

Deuterium is white and played bestmove Kh1 ponder Kf3

[d]8/8/3b4/8/8/4k3/6Kp/8 w - - 68 109
Arena followed what the engine was saying and sent
position startpos moves [....] Kh1 Kf3
go ponder [...]

Is there any other GUI that will send a stalemate position to the engine, in this similar case?

Deuterium ponders but when Arena told it to stop, it could not reply (even bestmove 0000 could have been enough). I have a bug.

Do you check the position after the ponder that it still has a legal move?
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Tragic comedy in pondering

Post by hgm »

I suppose UCI2WB would also do that. As it is completely agnostic w.r.t. game rules, it cannot possibly know that the position after the ponder move is a stalemate.

So I suppose the engine brings this on itself. It says it wants to ponder on Kf3, and the GUI simply follows those instructions. Either the engine should have suppressed the ponder move, or (better I think) it should be robust to positions without moves. Note that UCI specs do not explicitly state the engine can never be loaded with a position where there are no moves.

I would recommend printing "bestmove 0000" in such a case, with an empty PV and a score of 0 cp. This complies with the UCI specs at least in the sense that these stipulate null moves can be sent encoded as 0000. Null move means out giving up your turn without moving a piece, and arguably this is exactly what you are doing here. Giving up your turn doesn't automatically mean it now is the opponent's turn: that would only be true if the game has not ended yet. This output could be given for any draw claim, btw. And in combination with a negative mate score it could be interpreted as a resign (or recognition of the fact that you are checkmated).