Next: Move Reason Details, Previous: Move generation Intro, Up: Move Generation
Each move generator suggests a number of moves. It justifies each move suggestion with one or move move reasons. These move reasons are collected at each intersection where the moves are suggested for later valuation. Here is a partial list of of move reasons considered by GNU Go. (The complete list may be found in move_reasons.h.)
ATTACK_MOVE
DEFEND_MOVE
ATTACK_THREAT_MOVE
DEFEND_THREAT_MOVE
EITHER_MOVE
ALL_MOVE
CONNECT_MOVE
CUT_MOVE
ANTISUJI_MOVE
SEMEAI_MOVE
SEMEAI_THREAT
EXPAND_TERRITORY_MOVE
EXPAND_MOYO_MOVE
VITAL_EYE_MOVE
STRATEGIC_ATTACK_MOVE
STRATEGIC_DEFEND_MOVE
OWL_ATTACK_MOVE
OWL_DEFEND_MOVE
OWL_ATTACK_THREAT
OWL_DEFEND_THREAT
OWL_PREVENT_THREAT
UNCERTAIN_OWL_ATTACK
UNCERTAIN_OWL_DEFENSE
MY_ATARI_ATARI_MOVE
YOUR_ATARI_ATARI_MOVE
The attack and defend move types can have a suffix to denote moves whose
result depends on a ko, e.g. OWL_ATTACK_MOVE_GOOD_KO
. Here
..._GOOD_KO
and ..._BAD_KO
correspond to KO_A
and
KO_B
as explained in Ko.
See engine/move_reasons.h for the full of move reasons.
NOTICE: Some of these are reasons for not playing a move.
More detailed discussion of these move reasons will be found in the next section.