Next: Pattern Values, Previous: Patterns Overview, Up: Patterns
The attribute field in the `:' line of a pattern consists of a sequence of zero or more of the following characters, each with a different meaning. The attributes may be roughly classified as constraints, which determine whether or not the pattern is matched, and actions, which describe what is to be done when the pattern is matched, typically to add a move reason.
Safety of the move is not checked. This is appropriate for sacrifice patterns. If this classification is omitted, the matcher requires that the stone played cannot be trivially captured. Even with s classification, a check for legality is made, though.
In addition to usual check that the stone played cannot be trivially captured, it is also confirmed that an opponent move here could not be captured.
It is checked that every friendly (`O') stone of the pattern belongs to a dragon which has status (see Dragons)ALIVE
orUNKNOWN
. TheCRITICAL
matcher status is excluded. It is possible for a string to haveALIVE
status and still be tactically critical, since it might be amalgamated into an ALIVE dragon, and the matcher status is constant on the dragon. Therefore, an additional test is performed: if the pattern contains a string which is tactically critical, and if `*' does not rescue it, the pattern is rejected.
It is checked that every friendly (`O') stone of the pattern belongs to a dragon which is classified asDEAD
orUNKNOWN
.
It is checked that every opponent (`X') stone of the pattern belongs to a dragon with statusALIVE
,UNKNOWN
orCRITICAL
. Note that there is an asymmetry with `O' patterns, whereCRITICAL
dragons are rejected.
It is checked that every opponent (`X') stone of the pattern belongs to a dragon which is classified asDEAD
orUNKNOWN
If two or more distinct O dragons occur in the pattern, the move is given the move reasons that it connects each pair of dragons. An exception is made for dragons where the underlying worm can be tactically captured and is not defended by the considered move.
Add strategical defense move reason for all our dragons and a small shape bonus. This classification is appropriate for weak connection patterns.
If two or more distinct `X' dragons occur in the pattern, the move is given the move reasons that it cuts each pair of dragons.
The move makes or secures territory.
The move attempts increase influence and create/expand a moyo.
The move strategically defends all O dragons in the pattern, except those that can be tactically captured and are not tactically defended by this move. If any O dragon should happen to be perfectly safe already, this only reflects in the move reason being valued to zero.
The move strategically attacks all `X' dragons in the pattern.
Standard joseki move. Unless there is an urgent move on the board these moves are made as soon as they can be. This is equivalent to adding the `d' and `a' classifications together with a minimum accepted value of 27.
This indicates a fuseki pattern. This is only effective together with either the `j' or `t' classification, and is used to ensure indeterministic play during fuseki.
Slightly less urgent joseki move. These moves will be made after those with the `J' classification. This adds the `e' and `E' classifications. If the move has the `F' classification, it also gets a fixed value of 20.1, otherwise it gets a minimum accepted value of 20. (This makes sure that GNU Go chooses randomly between different moves that have `jF' as classification.)
Minor joseki move (tenuki OK). This is equivalent to adding the `e' and `E' classifications together with either a fixed value of 15.07 (if the move has `F' classification) or a minimum value of 15 (otherwise).
Urgent joseki move (never tenuki). This is equivalent to the `d' and `a' classifications together with a shape bonus of 15 and a minimum accepted value of 40.
A commonly used class is OX
(which rejects pattern if either side
has dead stones). The string `-' may be used as a placeholder. (In
fact any characters other than the above and `,' are ignored.)
The types `o' and `O' could conceivably appear in a class, meaning it
applies only to UNKNOWN
. `X' and `x' could similarly be used together.
All classes can be combined arbitrarily.