Winboard questions

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Winboard questions

Post by Rebel »

I am trying 2 WB options otime and result.

otime correctly communicates the time left on the opponent clock. However... if the opponent has a time forfeit otime isn't available any longer for the engine. Is there any way for the engine to know the opponent has forfeited?

result isn't communicated at all to the engine. How can an engine know the game result?

Tested with Arena & Chesspartner, not yet with Winboard itself.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Winboard questions

Post by Guenther »

Rebel wrote:I am trying 2 WB options otime and result.

otime correctly communicates the time left on the opponent clock. However... if the opponent has a time forfeit otime isn't available any longer for the engine. Is there any way for the engine to know the opponent has forfeited?

result isn't communicated at all to the engine. How can an engine know the game result?

Tested with Arena & Chesspartner, not yet with Winboard itself.
Result is always communicated after game end to both engines and I hardly believe Arena/CP will handle this different.
(e.g. it is crucial for programs who do some kind of result based learning)

Time forfeit could be extracted from the result string too as shown below,
'on time' would be sufficient enough. May I ask for what it is needed?

WB debug excerpts:

Code: Select all

961404 >first : result 1-0 {White wins on time}
961404 >second: result 1-0 {White wins on time}

Code: Select all

1261160 >first : result 1-0 {Xboard adjudication}
1261161 >second: result 1-0 {Xboard adjudication}
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Winboard questions

Post by hgm »

The WB protocol specs define what the various commands should do, but it doesn't put any obligation on a GUI to use those commands. (Or, for many, of the engine to implement them.) E.g. " variant xiangqi" tellse the engine to play Xiangqi, but there is no obligation for GUIs or engines to support Xiangqi.

So if GUI designers choose to not implement Xiangqi, not support 'ping', not send 'result' commands, not send 'time'/'otim', not support setting up positions through 'setboard' or 'edit', it is their right. It would be a pretty crummy GUI, of course, badly restricting what the user can do, and making what he can do work less well. The protocol is there to guarantee that everything you might want to do can be done well, and how the GUI wants to use it is up to the designer.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Winboard questions

Post by Evert »

Rebel wrote: otime correctly communicates the time left on the opponent clock. However... if the opponent has a time forfeit otime isn't available any longer for the engine. Is there any way for the engine to know the opponent has forfeited?
Sounds like a bug to me.
You may be able to work around it by forcing the GUI to restart the engines (reuse=0), but depending on what causes this problem that may not work.
result isn't communicated at all to the engine. How can an engine know the game result?
There is no other way (at least according to the specification).
Tested with Arena & Chesspartner, not yet with Winboard itself.
XBoard (and presumably WinBoard) reliably sends both "otim" and "result" (although I personally use neither).
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Winboard questions

Post by jdart »

I don't know about other engines, but Arasan uses "time" and "otim" to set search time and make other decisions. "Result" is also used in a couple of situations. One is where the engine is making a draw claim (assuming the GUI or server does not adjudicate games). "Result" from the GUI indicates acceptance. Another is to terminate any search in progress, so that for example if the opponent resigns, no additional move is sent (this may not be fatal but I avoid it). And in CECP mode Arasan saves games, with the result.

I use Arena (3.0) quite a bit and I think it sends these.

--Jon
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Winboard questions

Post by Rebel »

Guenther wrote:Result is always communicated after game end to both engines and I hardly believe Arena/CP will handle this different.
Not in CP, netheir in Arena 3.0
(e.g. it is crucial for programs who do some kind of result based learning)
I think that programmers use the score, not the result for learning.
Time forfeit could be extracted from the result string too as shown below, 'on time' would be sufficient enough.

WB debug excerpts:

Code: Select all

961404 >first : result 1-0 {White wins on time}
961404 >second: result 1-0 {White wins on time}

Code: Select all

1261160 >first : result 1-0 {Xboard adjudication}
1261161 >second: result 1-0 {Xboard adjudication}
Unfortunately not in CP as in Arena 3.0
May I ask for what it is needed?
For a new feature.

It seems I will have to find solutions of my own, it should work on all GUI's not only on Winboard.
User avatar
hgm
Posts: 27789
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Winboard questions

Post by hgm »

That will be hard without making it crummy by collecting all shortcomings of all GUIs in one...
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Winboard questions

Post by Rebel »

Indeed, crummy and dummy but in the end yummy.