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

 


_______________________________________________
gnugo-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnugo-devel

Reply via email to