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.
Winboard questions
Moderators: hgm, Rebel, chrisw
-
- Posts: 4606
- Joined: Wed Oct 01, 2008 6:33 am
- Location: Regensburg, Germany
- Full name: Guenther Simon
Re: Winboard questions
Result is always communicated after game end to both engines and I hardly believe Arena/CP will handle this different.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.
(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}
-
- Posts: 27796
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Winboard questions
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.
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.
-
- Posts: 2929
- Joined: Sat Jan 22, 2011 12:42 am
- Location: NL
Re: Winboard questions
Sounds like a bug to me.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?
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.
There is no other way (at least according to the specification).result isn't communicated at all to the engine. How can an engine know the game result?
XBoard (and presumably WinBoard) reliably sends both "otim" and "result" (although I personally use neither).Tested with Arena & Chesspartner, not yet with Winboard itself.
-
- Posts: 4366
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: Winboard questions
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
I use Arena (3.0) quite a bit and I think it sends these.
--Jon
-
- Posts: 6991
- Joined: Thu Aug 18, 2011 12:04 pm
Re: Winboard questions
Not in CP, netheir in Arena 3.0Guenther wrote:Result is always communicated after game end to both engines and I hardly believe Arena/CP will handle this different.
I think that programmers use the score, not the result for learning.(e.g. it is crucial for programs who do some kind of result based learning)
Unfortunately not in CP as in Arena 3.0Time 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}
For a new feature.May I ask for what it is needed?
It seems I will have to find solutions of my own, it should work on all GUI's not only on Winboard.
-
- Posts: 27796
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Winboard questions
That will be hard without making it crummy by collecting all shortcomings of all GUIs in one...
-
- Posts: 6991
- Joined: Thu Aug 18, 2011 12:04 pm
Re: Winboard questions
Indeed, crummy and dummy but in the end yummy.