List Of Components A Computer Go Program Must Have
... plus the involved problems
- implement rules (ko-rules, seki, counting...)
- fuseki+joseki
- search for tactical stability of strings
- connection-search for strings
- determination of life&death of strings
- estimate influence + possible territories
- scoring (different rules, determination of dead groups)
Neil: Don't forget the most important one, learned from the big-time chess matches:
- A team of professionals making adjustments for each opponent before each game.
maproom: My list is very different from the above. A program need know nothing about fuseki, joseki, influence, or even life and death. But it does need the following:
- An internal representation of the current board position, which it updates as moves are made
- A way of learning where its opponent has moved
- A way of generating a list of its legal moves (this list need not be complete)
- A way of choosing among these moves
- A way of of telling its opponent where it has moved
Also desirable, but not absolutely necessary, are:
- The ability, when the game is over, to count the score
- The ability to deduce from this who has won
- A way of knowing how much time it has left