A blog about learning go and learning computer go. A go beginner tries to improve his game and use their software engineering skills to build a computer go player. Entries about their go reading, computer go reading, go playing, go improvement, go concepts (seki, ko, miai, etc) and progress building the computer go player.

Monday, May 23, 2005

An implementation plan

If I'm going to write a computer go player, I need a plan. Plans drawn at this stage are inevitably only approximations, but here's my current plan:

  • Infrastructure – the framework to hang the rest on
    • SGF parser
    • SGF writer (simpler that the parser since it only needs to handle the properties I'm actually using)
    • a graphic goban (so i can play the program)
    • GTP client (so I can play my program against other people and other programs)
    • GTP engine (so i can organise play-offs)
    • test suite (so ease debugging)
  • Opening: a classical opening book, assembled from pro and senior-amateur games. Also code to handle symmetry.
  • Mid-game: a genetic algorithm prioritising a list of relatively complex template patterns.
  • End-game: a theorem prover, perhaps along the lines of gotools, but with incremental additions of knowledge to the database as positions are proven safe/unsafe.
One advantage of have separate beginning, middle and end games is that I can develop, test and debug them separately.

1 comment:

Anonymous said...

Can I suggest you grab a copy of GoGui. It handles a whole bunch of stuff you are looking at implementing.

http://sourceforge.net/projects/gogui/