Author: Robert Hyatt
Date: 14:47:23 09/15/98
Go up one level in this thread
On September 15, 1998 at 17:19:30, Roberto Waldteufel wrote: > >On September 15, 1998 at 10:57:31, Robert Hyatt wrote: > >>Below is some excerpts from the current xboard/winboard interface standard >>that can serve as a jumping-off point for developing an autoplayer that should >>finally be able to connect windows and unix boxes together using serial or >>network connections. >> >>======================================================================== >>Chess Engine Communication Protocol >>======================================================================== >> >>1. Commands to the engine >> >>All commands from the interface to the engine end with a newline (\n), even >>where that is not explicitly stated. All your output to the interface must >>be in complete lines; any form of prompt or partial line will cause >>problems. >> >>draw >> The engine's opponent offers the engine a draw. To accept the draw, >> send "draw". To decline, ignore the offer, or send "decline". >> Note that it's possible for the draw offer to have been withdrawn by >> the time you accept it, so don't assume the game is over because you >> accept a draw offer. Continue playing until the interface tells you the >> game is over. >> >> [snip] > >Hi Bob, > >In fact, the laws of chess are very specific about draw offers. > >1) It is only allowed to offer a draw when it is your turn to play, not while >your opponent is thinking (or searching). > correct. the issue is, however, "asynchronous communication". In the case of Crafty, it makes a move, offers a draw, and starts thinking based on what it expects for you to play. The "retraction" was a simple term for you making a move without saying "yes". If I offer you a draw, you can say "accept" and the game ends or you can say "decline" and keep playing, or you can make a move and press the clock, which is the same as saying "decline".. >2) Having made a draw offer, you do not have the right to retract it. The >opponent may think as long as his clock permits before either accepting the >offer or making a move. Once he makes a move and presses his clock, he loses the >right to accept your draw offer (unles you make a new draw offer). right. I worded that poorly, but it's worded like that because of playing on ICC. Because I can get confused with draw offers when there is lots of lag... > >I think that this actually simplifies the task for an autoplayer compared to >what you suggest, since the program that has been offered the draw does not need >to check if the offer has been rescinded, since that would be illegal. Although >it is only a minor point of the FIDE laws, I do think it is important to get >this sort of thing right at an early stage, otherwise in years to come it will >remain an embarrasing anomally once multiple programs support the standard. This >is how we come to rely on arrangements that ignore rare but important situations >like underpromotions, for example. > >Can you explain how the engine and the interface communicate in the set-up you >propose? I imagine it would be quite simple, but I don't really know anything >about communications programming, so I'm not quite sure what extra code t >Best wishes, >Roberto communication is easy. To send something to the interface, you simply do a "printf("move %s\n",move_text)"... ie normal I/O to stdout goes to the interface. To read a command or move, just read from stdin, like you would if in a dos window... That code is easy...
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.