| www.delorie.com/gnu/docs/gnugo/gnugo_125.html | search |
![]() Buy GNU books! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A half eye is a place where, if the defender plays first, an eye will materialize, but where if the attacker plays first, no eye will materialize. A false eye is a vertex which is surrounded by a dragon yet is not an eye. Here is a half eye:
XXXXX OO..X O.O.X OOXXX |
Here is a false eye:
XXXXX XOO.X O.O.X OOXXX |
The "topological" algorithm for determining half and false eyes is described elsewhere (see section 11.7 Topology of Half Eyes and False Eyes).
The half eye data is collected in the dragon array. Before this is done,
however, an auxiliary array called half_eye_data is filled with
information. The field type is 0, or else HALF_EYE or
FALSE_EYE depending on which type is found; the fields
attack_point[] point to up to 4 points to attack
the half eye, and similarly defense_point[] gives points
to defend the half eye.
struct half_eye_data half_eye[MAX_BOARD];
struct half_eye_data {
float value; /* Topological eye value */
int type; /* HALF_EYE or FALSE_EYE */
int num_attacks; /* Number of attacking points */
int attack_point[4]; /* The moves to attack a topological halfeye */
int num_defends; /* Number of defending points */
int defense_point[4]; /* The moves to defend a topological halfeye */
};
|
The array struct half_eye_data half_eye[MAX_BOARD]
contains information about half and false eyes. If the type is
HALF_EYE then up to four moves are recorded which can
either attack or defend the eye. In rare cases the attack points
could be different from the defense points.
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |