Winboard questions

Discussion of chess software programming and technical issues.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
User avatar
Rebel
Posts: 4301
Joined: Thu Aug 18, 2011 10:04 am

Winboard questions

Post by Rebel » Mon Jun 26, 2017 8:08 am

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: 2698
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Winboard questions

Post by Guenther » Mon Jun 26, 2017 8:35 am

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}

User avatar
hgm
Posts: 23004
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: Winboard questions

Post by hgm » Mon Jun 26, 2017 11:46 am

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: 2909
Joined: Fri Jan 21, 2011 11:42 pm
Location: NL
Contact:

Re: Winboard questions

Post by Evert » Mon Jun 26, 2017 12:50 pm

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: 3677
Joined: Fri Mar 10, 2006 4:23 am
Location: http://www.arasanchess.org

Re: Winboard questions

Post by jdart » Mon Jun 26, 2017 1:48 pm

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: 4301
Joined: Thu Aug 18, 2011 10:04 am

Re: Winboard questions

Post by Rebel » Tue Jun 27, 2017 3:48 pm

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: 23004
Joined: Fri Mar 10, 2006 9:06 am
Location: Amsterdam
Full name: H G Muller
Contact:

Re: Winboard questions

Post by hgm » Tue Jun 27, 2017 4:39 pm

That will be hard without making it crummy by collecting all shortcomings of all GUIs in one...

User avatar
Rebel
Posts: 4301
Joined: Thu Aug 18, 2011 10:04 am

Re: Winboard questions

Post by Rebel » Tue Jun 27, 2017 8:53 pm

Indeed, crummy and dummy but in the end yummy.

Post Reply