[computer-go] A thought about Bot-server communications
Gunnar Farnebäck
gunnar at lysator.liu.se
Tue Dec 11 10:12:57 PST 2007
Nick Wedd wrote:
>> Sorry, but I can't take this seriously. If your board update routine
>> fails, just fix it. As long as you trust the controller to send legal
>> moves, it's well defined how the board will look. The same board
>> update logic can be used for all rulesets. If you don't agree about
>> the legality, complain in a logfile. If you don't trust the controller
>> to send legal moves, you have a problem that is hardly properly solved
>> by asking it for a different board state description.
>
> I agree that the server knows better than me about the legality. I
> trust the server to make legal moves. I just might not know how to
> update the board state after a move I had not realised was possible.
>
> In 1998, running the Ing Cup, I tested all the entrants for their
> behaviour when someone played a suicide move at them. Many Faces put up
> a polite dialog box explaining that this was an illegal move. Go++ was
> more amusing: it allowed the move (which you would approve) but left
> the suicided stones on the board, where they became almost unkillable,
> it could not capture them by removing their last liberty as they didn't
> have one, the only way to lose them was to capture exactly one of their
> surrounding stones, in a perverted kind of snapback. I would have
> preferred these programs to have been able to respond "wtf is going on,
> please tell me the current board state".
Well, the thing is that fixing the board update logic should in most
cases be a matter of adding a small number of lines, or in extreme cases
even removing some lines. In terms of programming it's a much bigger
operation to obtain information by external communication and then
trying to recover the internal data structures.
/Gunnar
More information about the computer-go
mailing list