Next: Eye Local Game Values, Previous: Graphs, Up: Eyes
The patterns in patterns/eyes.db are compiled into graphs represented essentially by arrays in patterns/eyes.c.
Each actual eye space as it occurs on the board is also compiled into a graph. Half eyes are handled as follows. Referring to the example
XXOOOOO XOa...O XbOOOOO XXXXXX
repeated from the preceding discussion, the vertex at `b' is added to the eyespace as a marginal vertex. The adjacency condition in the graph is a macro (in optics.c): two vertices are adjacent if they are physically adjacent, or if one is a half eye and the other is its key point.
In recognize_eyes()
, each such graph arising from an actual eyespace is
matched against the graphs in eyes.c. If a match is found, the
result of the local game is known. If a graph cannot be matched, its
local game is assumed to be {2|2}.