Gomill is a suite of tools, and a Python library, for use in developing and testing Go-playing programs. It is based around the Go Text Protocol (GTP) and the Smart Game Format (SGF).
The principal tool is the ringmaster, which plays programs against each other and keeps track of the results.
Ringmaster features include:
Page contents
Create a file called demo.ctl, with the following contents:
competition_type = 'playoff'
board_size = 9
komi = 7.5
players = {
'gnugo-l1' : Player('gnugo --mode=gtp --level=1'),
'gnugo-l2' : Player('gnugo --mode=gtp --level=2'),
}
matchups = [
Matchup('gnugo-l1', 'gnugo-l2',
alternating=True,
number_of_games=5),
]
(If you don’t have gnugo installed, change the Player definitions to use a command line for whatever GTP engine you have available.)
Then run
$ ringmaster demo.ctl
The ringmaster will run five games between the two players, showing a summary of the results on screen, and then exit.
(If the ringmaster is not already installed, see Installation for instructions.)
The final display should be something like this:
gnugo-l1 v gnugo-l2 (5/5 games)
board size: 9 komi: 7.5
wins black white avg cpu
gnugo-l1 2 40.00% 1 33.33% 1 50.00% 1.05
gnugo-l2 3 60.00% 1 50.00% 2 66.67% 1.12
2 40.00% 3 60.00%
= Results =
game 0_0: gnugo-l2 beat gnugo-l1 W+21.5
game 0_1: gnugo-l2 beat gnugo-l1 B+9.5
game 0_2: gnugo-l2 beat gnugo-l1 W+14.5
game 0_3: gnugo-l1 beat gnugo-l2 W+7.5
game 0_4: gnugo-l1 beat gnugo-l2 B+2.5
The ringmaster will create several files named like demo.xxx in the same directory as demo.ctl, including a demo.sgf directory containing game records.
Gomill also provides a Python library for working with GTP and SGF, though as of Gomill 0.7.1 only part of the API is stable. See The Gomill library for details.
Some example scripts are also included in the Gomill distribution, as illustrations of the library interface and in some cases as tools useful in themselves.