2007/7/20, Joshua Shriver <[EMAIL PROTECTED]>:
What kind of data structures do you all use for your engines, in
respect to board representation and move generation. I know in chess
bitboard, mailbox board[8][8], 0x88 exist all with their pro's and
cons. Are there similar concepts for Go?

Below assuming 9x9 Go.

There are 2D board (i.e. board[9][9]) and 1D board (board[81]). I
heard of people using guard (board[11][11]).

The more important issue is representation of connected string. You
need that to implement the rule. One well known representation is
so-called "next stone array".

Scratch array to count liberties can be used. If one only wants to
check the capture, so-called liberty edge which is zero if liberty is
zero can be counted faster.

Many different ways to implement incremental board update. Also ways
to handle undo.

The most usual way to handle ko seems to be to save a single point the
last ko was captured.

GNU Go has a comprehensive documentation of its board data structures:
http://www.gnu.org/software/gnugo/gnugo_15.html

--
Seo Sanghyeon
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to