gnugo-devel
[Top][All Lists]
Advanced

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

Re: [gnugo-devel] owl attack moves and semeais


From: Arend Bayer
Subject: Re: [gnugo-devel] owl attack moves and semeais
Date: Thu, 8 Apr 2004 20:22:59 +0200 (CEST)


Gunnar wrote:
> Arend wrote:
> > - if it's tactically capturable => dead
> > - otherwise, if owl alive => alive
> > - otherwise, if there is a single semeai that this dragon can win => alive
> > - otherwise, dead
>
> Sorry, this seems somewhat too simplistic, although I agree we need to
> have a coherent and preferrably simple handling of dragon status.

At least it would make it easier to decide which part of the code to blame
when things go wrong :)

> First problem:
>  5 . . . . . . . . . 5
>  4 O O O O O O O . . 4
>  3 . . + . . . O . . 3
>  2 X X X X X X O . . 2
>  1 . O O O . X O . . 1
>    A B C D E F G H J
>
> The lower O string is tactically captured but strategically alive in
> seki.

Ok. Sow how about:

- if it's tactically capturable => dead for now
- otherwise, if owl alive => alive, otherwise dead for now
- if there is a single semeai that a "dead" dragon will win, we change it's
  status to alive

> Second problem:
> What about multiple semeais?

IMO, winning a single semeai should be enough to make a dragon alive. If
capturing the other dragon is not sufficient to make life, the semeai
code shouldn't claim a win.
In other words, if the semeai code claims a dragon is still killed in a
semeai, and this dragon is part of multiple semeais, this opinion is as
unreliable as owl claim "dragon is dead" if it is involved in a semeai.

In other words, I think my policy above is as good as it gets without
proper combination reading of multiple semeais. (Which I am not
proposing to do.)

I am aware that this is not what the code in semeai.c is doing right now
with respect to SEMEAI_ATTACK_MOVE. But I wanted to hear opinions on my
suggested policy before trying to change that.

Arend






reply via email to

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