Here are some details about GoAhead:
- It's a simple one-pass program. It usually doesn't calculate
variations at all.
- It uses a fixed order:
- connections
- generation of moves of each group
- evaluation of the strength of the groups (depends on the safety, size
of surrounded territory, and on the number of generated moves)
including life & death (see below)
- evaluate overall score of the current position (according to
territory, potential areas, weaknesses of groups
- adjust playing style to current position (e.g. invade, if behind;
reduce, if opponent builds large mojos etc.)
- detection and evaluation of cutting points
- decision where to play (answer last move or play elsewhere?)
- joseki moves (database)
- evaluation of the generated moves (depends on the strengths of the groups)
- endgame moves (see below)
- local answers (nobi, hane)
- shape moves (pattern recognition)
- calculate overall values of suggested moves
- play best move
- Different parts of the program generate different types of moves (joseki,
extensions, checking moves, mojo moves, escaping, hunting, sliding,
connecting, separating, blocking, invasions). Each type of moves is
evaluated with a different program according to the current situation
on the board.
- Variations are only calculated for
- ladders etc. (two liberty problems)
- life & death: Here, I try to localize the current problem, and
calculate rather deep variations, until one can decide, whether the
group is dead or alive.
- endgame moves: also localize the problem, calculate variations,
until distribution of territory is clear.
Classical technics (alpha-beta, window technics) are used for tree-search.
Unfortunately, the program runs on an Atari computer and is rather slow
(beginning: 20''/move, endgame: 80''/move).