[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: computer-go: Most simple Go rules



On 26 June 2001, Nick Wedd wrote:

> >What the organizers could do is take all the records of the games and run
> >them through a program that checks for legality of all moves. This doesn't
> >imply trusting the programers honesty and they don't have to be present and
> >watch the game. Neither has the TD to do that nor anybody else.
> 
> Not all programs are capable of recording the game correctly.  Usually
> one or other opponent manages it, but this can't be guaranteed.  Those
> that do manage it don't always use a standard format.


I haven't done any programming with the Go Modem Protocol, but assuming 
the tournaments use a single standard protocol for communications, would 
it not be possible to write an independent game-logging and move 
validation application that could sit between the competitors and relay/
snoop on all of their external communications.

Each side would submit their moves, etc. to the arbitor/logger which would 
relay the move to the opponent and also create the official game log.  The
arbiter could also perform hashing checks to notify the TD of ko violation,
suicide violations, etc.  In short, you could have an automated watchdog to
enforce the tournament rules rather than requiring constant human 
supervision.

As long as the arbitor correctly implements the communications protocol 
and accurately relays both player's output, I would think that the 
logging/move-validation process could be made transparent to the two
competitors.  The only thing I could see as a problem might be the small
amount of extra time needed to perform the logging/checks, but this should
impact each program equally so would not contribute to any game imbalance,
and a small amount of additional time could be added to each game to 
compensate if necessary.  

Naturally the source code to the logger as well as its output logs would 
need to be available to all of the competitors.

Daniel Hallmark
... or would this be completely untenable for some reason I've overlooked?