XBoard for Mac: draw non-recognition, feature or bug?

Discussion of chess software programming and technical issues.

Moderator: Ras

matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Questions

Post by matthewlai »

sje wrote:
matthewlai wrote:There's no advantage to sending "1/2-1/2" in any situation.
Symbolic handles all mates consistently. It sends 1/2-1/2 on stalemates, just as it sends 1-0 or 0-1 on checkmates.
Sure. Just saying there's no practical advantage.

And there is a practical disadvantage in not counting helpmates as draws - your search can be misled to get into those positions from winning positions.

If you REALLY want to be able to claim draws, I would have 2 separate insufficient material checks - one for the search, and one for claiming.
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
User avatar
hgm
Posts: 28387
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Questions

Post by hgm »

matthewlai wrote:There's no advantage to sending "1/2-1/2" in any situation.
Indeed, provided you are using the GUI with legality checking, mate detection and material-draws adjudication all switched on. Which is the recommended seting for normal Chess.

For variants, and in particular variants that XBoard does not know the rules about, it becomes a different matter. A position might be a stalemate without the GUI knowing it, because pieces move differently from what it expects. Then the 1/2-1/2 command from the engine becomes essential.

These RESULT commands in CECP should really be seen as a feature to support arbitrary variants. In reality they are of course a legacy from the time that normal Chess actually was such an arbitrary variant with unknown rules, as far as XBoard was concerned. The rules were programmed only later, initially XBoard was just a graphical front end for GNU Chess, deferring all game playing to the engine.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Adjustments

Post by sje »

With Symbolic using its new and very restrictive definition of insufficient material, I may change the program to send 1/2-1/2 for all draws after it makes a move resulting in a draw. This should work in all cases regardless of whatever the GUI might be doing with respect to verification and adjudication.

The only problem I can see with the above is a possible race condition where the GUI processes the final move and starts a new game before it sees the result report. Perhaps this is not a problem with protocol version two using ping/pong synchronization.

----

How is XBoard terminating an engine when XBoard is commanded to quit? I have Symbolic ignoring SIGINT, so I guess it must be some other signal.