Main
Date: 19 Sep 2006 22:28:09
From: Folkert van Heusden
Subject: xboard protocol ambiguities
Hi,

I saw that crafty (and others e.g. gnuchess(!)) start moving when received a
move after a 'force'. It also seems that icsDrone depends on this
behaviour?
Now just the get all ambiguities out of the way:
- xboard / protover 2 / force / edit / . / e2e4 (or whatever move) does NOT
start the clock
- xboard / protover 2 / force / white / e2e4 *DOES* start the clock
am I right?
So 'edit' is a special force-mode?

Example GNUChess:
folkert@muur:/usr/local/games/pos/src/icsDrone$ gnuchess
GNU Chess 5.07
Adjusting HashSize to 1024 slots
Transposition table: Entries=1K Size=40K
Pawn hash table: Entries=0K Size=28K
White (1) : xboard
White (1) : protover 2
feature setboard=1 analyze=1 ping=1 draw=0 sigint=0 variants="normal"
myname="GNU Chess 5.07" done=1
White (1) : force
White (1) : white
White (1) : e2e4
1. e2e4
1. ... b8c6

Example Crafty:
folkert@keetweej:~/pos$ crafty
hash table memory = 12M bytes.
pawn hash table memory = 3M bytes.
show book statistics
EGTB access enabled
using tbpath=/var/lib/crafty/TB
0 piece tablebase files found
parallel threads disabled.


Crafty v20.0 (1 cpus)

White(1): xboard

tellicsnoalias set 1 Crafty v20.0 (1 cpus)
tellicsnoalias kibitz Hello from Crafty v20.0! (1 cpus)
protover 2
feature ping=1 setboard=1 san=1 time=1 draw=1
feature sigint=0 sigterm=0 reuse=1 analyze=1
feature myname="Crafty-20.0" name=1
feature playother=1 colors=0
feature variants="normal,nocastle"
feature done=1
force
white
e2e4
move c6

Example icsDrone session with freechess.org:
Tue Sep 19 19:17:47 GMT+01:00 2006 Pos in xboard mode started
Tue Sep 19 19:17:47 GMT+01:00 2006 In: xboard
Tue Sep 19 19:17:47 GMT+01:00 2006 In: protover 2
Tue Sep 19 19:17:47 GMT+01:00 2006 In: ics freechess.org
Tue Sep 19 19:17:47 GMT+01:00 2006 Opponent is on host: freechess.org
Tue Sep 19 19:34:20 GMT+01:00 2006 In: level 0 10 7
Tue Sep 19 19:34:20 GMT+01:00 2006 In: time 66800
Tue Sep 19 19:34:20 GMT+01:00 2006 In: otim 54800
Tue Sep 19 19:34:20 GMT+01:00 2006 In: force
Tue Sep 19 19:34:20 GMT+01:00 2006 In: d2d4
Tue Sep 19 19:34:20 GMT+01:00 2006 pos will move: from: D2, to: D4,
movetype: REGULAR
Tue Sep 19 19:34:20 GMT+01:00 2006 (pos) move g8f6, value: 1.7
('in:' is what I receive from icsDrone)


Could someone enlighten me?


Folkert van Heusden




 
Date: 20 Sep 2006 23:56:08
From: Simon Waters
Subject: Re: xboard protocol ambiguities
> Yes. But the documentation says: force - stop clocks, white - stop clocks,
> then a move comes in: the documentation does not say that the clocks should
> then be started?

It is implied because force "sets the engine to play neither colour"

But "White" makes "the engine black", thus ending force mode.

The move then starts blacks clock, because it is no longer in force mode.

It could be written better, but that is the expected behaviour.

You shouldn't be writing code that depends on "white" and "black", if you
can avoid it (and you probably can).


  
Date: 21 Sep 2006 18:42:13
From: Folkert van Heusden
Subject: Re: xboard protocol ambiguities
Hi,

Thanks for the reply!

>> Yes. But the documentation says: force - stop clocks, white - stop
>> clocks, then a move comes in: the documentation does not say that the
>> clocks should then be started?
> It is implied because force "sets the engine to play neither colour"
> But "White" makes "the engine black", thus ending force mode.
> The move then starts blacks clock, because it is no longer in force mode.
> It could be written better, but that is the expected behaviour.
> You shouldn't be writing code that depends on "white" and "black", if you
> can avoid it (and you probably can).

Probably but I tried to stick so close as possible to the xboard specs as
possible to prevent compatibility problems.


 
Date: 20 Sep 2006 03:09:19
From: Simon Waters
Subject: Re: xboard protocol ambiguities
> White (1) : force
> White (1) : white
> White (1) : e2e4
> 1. e2e4
> 1. ... b8c6


> force
> white
> e2e4
> move c6

force works exactly how the documentation says it does.

Your examples send "white" which changes who is to play.

The use of "white" and "black" are obsolete, and also cause problems for
recent versions of GNU Chess when pondering (I'm working on it, but I don't
use "white"/"black" at all myself, so it isn't a priority).

white
(This command is obsolete as of protocol version 2, but is still sent
in some situations to accommodate older engines unless you disable it
with the feature command.) Set White on move. Set the engine to play
Black. Stop clocks.


  
Date: 20 Sep 2006 13:57:58
From: Folkert van Heusden
Subject: Re: xboard protocol ambiguities
>> White (1) : force
>> White (1) : white
>> White (1) : e2e4
>> 1. e2e4
>> 1. ... b8c6
>
>> force
>> white
>> e2e4
>> move c6
>
> force works exactly how the documentation says it does.
> Your examples send "white" which changes who is to play.

Yes. But the documentation says: force - stop clocks, white - stop clocks,
then a move comes in: the documentation does not say that the clocks should
then be started?

> The use of "white" and "black" are obsolete, and also cause problems for
> recent versions of GNU Chess when pondering (I'm working on it, but I
> don't use "white"/"black" at all myself, so it isn't a priority).
>
> white
> (This command is obsolete as of protocol version 2, but is still sent
> in some situations to accommodate older engines unless you disable it
> with the feature command.) Set White on move. Set the engine to play
> Black. Stop clocks.