[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gnugo-devel] changed board_hash after reading
From: |
Arend Bayer |
Subject: |
Re: [gnugo-devel] changed board_hash after reading |
Date: |
Sat, 3 Sep 2005 12:52:50 +0200 (CEST) |
I wrote:
> Gunnar wrote:
> > Arend wrote:
> > > About the first: We could instead automatically reset komaster
> > > to EMPTY in do_trymove() when a ko is resolved (and remove the above
> > > code from komaster_trymove()). I am not sure what is best here.
> >
> > This is also what Martin does. But is there actually any need for an
> > automatic reset? It seems to me that this check could be done in
> > komaster_trymove() after doing the move and that it's only meaningful
> > for non-ko moves.
>
> In fact, it seems outright wrong to me in the case of ko moves: we don't
> want to reset the komaster in case of a two stage ko. (This may still
> happen with your patch further down the search tree, I think.)
I think I was confused here, as Gunnar pointed out to me. In the case of
a two stage ko, the code in komaster_trymove moves the kom_pos to the
position of the second ko, when we capture it (while we are komaster for
the first ko).
My conclusion is now:
1. I think Martin's patch is wrong on this point, as it does the check before
komaster_trymove had a chance to update the ko position (this should
also explain the increase in reading nodes).
2. I guess we should use Gunnar's latest patch.
To be pedantic, it may not be entirely correct in situation such as this
(white to move is komaster for *):
A B C D E F G H J
19 . . . . . . . . .
18 . . X X O . . . .
17 . . X O * O . . .
16 . . . X O . . . .
15 . . X O X . . . .
14 . . X O . . . . .
13 . . . . . . . . .
Capturing D16 doesnt resolve the ko for all eternity if Black blocks at
B16 and later recaptures D16.
(But the code was probably never correct for this situation.)
Arend