Next: , Previous: Graphs, Up: Eyes


8.6 Eye shape analysis

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}.