[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
computer-go: Empty board spaces management
Hi again. I would like to thank everyone for your responses on an unmake
move method. We found them all very helpful (and I hope some of you did as
well). We decided to implement an unmake move method rather than copy state.
Now, we are debating how to tackle empty region management. We would like
to update data structures that manage empty parts of the board as the game
moves along. Our first thoughts were to look at the empty board as one big
eye of sorts. We would consider the empty regions of the board one big eye
until two regions were completely separated from one another by stones (ie:
once a corner was sealed off, the corner would become its own "eye" separate
from the rest of the empty spaces on the board). However, we found it very
difficult to keep track of this information efficiently (time-wise). It
seems logical to partition the board into empty regions as pieces are played
which split free areas (this will be especially helpful in determining eye
spaces). However, the search required to identify all separate regions of
the board is too expensive as we see it. I wanted to check with all of you
and see if you had any suggestions as to how to manage data structures for
empty regions of the board efficiently. Ideally, we would like to update
this information on a per-move basis rather than completely reevaluate the
board at every move. However, we are open to any suggestions.
Thanks for all your help,
Bryan McQuade