[Top][All Lists]

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

[gnugo-devel] switching to multiple boards

From: Paul Pogonyshev
Subject: [gnugo-devel] switching to multiple boards
Date: Sat, 9 Apr 2005 22:26:16 +0300
User-agent: KMail/1.4.3

I'm thinking of starting wrapping GNU Go board and related global
variables into a structure so that we can have several boards in
parallel.  I remember being hostile to this idea a few years ago,
but maybe we will have to make GNU Go threaded eventually.  Are
there any strong positive or negative opinions on this issue?

If we go at it, we should probably create a CVS branch (or will
that be a Subversion branch?), since the task seems to be _very_
large and the multi-board version will be in non-working state for
(very) long time.  For the start, it is absolutely necessary to
make `libboard' compile and at this stage cooperation is hardly
possible.  Later, it will be possible that several of us work on
separate modules, converting them more or less independently.

I'm willing to have a try at `libboard' conversion.  No promises,

There is one basic question on which I cannot come to a definitive
answer: how should we call the structure that wraps up the board
and related stuff?  The obvious answer would be `Board', but then
we will end up with silly code like

        ... board->board[SOUTH(pos)];

Another option might have been `Position', but that word has stuck
in GNU Go to the meaning of ``board coordinate.''  So, this is not
a good choice.

Now, I have three options which I consider acceptable (while the
two above seem unacceptable.)

My favourite is to call everything `Game'.  This has some potential
for mild confusion in the beginning, but I believe that it is
generally a good choice.

Another variant is `Goban'.  I don't like it very much, since I
somehow have that word stick to visual representation of the board,
rather than to logical one.  (This mostly comes from Quarry, but
`view.pike' seems to use `goban' for that too.)

Third option is to use `Board' anyway, but rename the 1D array we
call `board' now to something else.  This is what is used in Quarry
and the array is called `grid' there.  The major drawback is that
we are all used to the word `board' in this context.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]