I struggled with unto a lot, too. In the current version of Orego,
there is no undo, just a way to copy a board relatively quickly. This
falls under "keep the common case fast" again: you only "undo" once
per playout, so it's faster to make a copy.
(For the "real" board, where actual games moves are played, maintain
a stack of board state copies for undoing.)
Peter Drake
http://www.lclark.edu/~drake/
On May 27, 2007, at 5:28 PM, Jason House wrote:
Don Dailey wrote:
Lukasz Lew does something far more sophisticated and very fast
using the
concept of pseudo liberties which you might want to look into.
Both pseudo liberties as well as disjoint set chain tracking.
Curiously enough, they're both things I independently came up with
when I was designing HouseBot the first time around, but included
neither in the open source version. Pseudo liberties had a very
negative response on the computer go mailing list at the time, so I
chose something closer to real liberty tracking. When I
implementing undo's I figured the disjoint set stuff was too
complex and might scare away developers on an open source project
(simple, easy to read code is a big plus). I still wonder if I was
the original creator of either concept...
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/