Viewing results
Page contents
Reports
The competition report file (code.report
) file is a plain text description of the competition results. This is similar to the live report that is displayed while the competition is running. It includes the contents of the competition’s description
setting.
For tournaments, it also shows descriptions of the players. These are obtained using the GTP name
and version
commands, or using gomill-describe_engine
if the engine provides it.
For example, in a playoff tournament with a single matchup:
playoff: example
Testing GNU Go level 1 vs level 2, 2010-10-14
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.23
gnugo-l2 3 60.00% 1 50.00% 2 66.67% 1.39
2 40.00% 3 60.00%
player gnugo-l1: GNU Go:3.8
player gnugo-l2: GNU Go:3.8
The report file is written automatically at the end of each run. The report
command line action forces it to be rewritten; this can be useful if you have changed descriptive text in the control file, or if a run stopped ungracefully.
The show
command line action prints the same report to standard output.
It’s safe to run show
or report
on a competition which is currently being run.
Game records
The ringmaster writes an SGF record of each game it plays to the code.games/
directory (which it will create if necessary). This can be disabled with the record_games
setting. The filename is based on the game’s game_id.
(You might also see game records in a code.void/
directory; these are games which were abandoned due to software failure; see Void games.)
The ringmaster supports a protocol for engines to provide text to be placed in the comment section for individual moves: see gomill-explain_last_move
.
The game record includes a description of the players in the root node comment [1]. If an engine implements gomill-describe_engine
, its output is included.
The PB
and PW
property values are normally taken from the response to the GTP name
and version
commands. If name
isn’t implemented, or the player sgf_player_name_from_gtp
setting is False
, the property is taken from the player code.
[1] | The root node comment is used rather than the game comment because (in my experience) SGF viewers tend to make it easier to see information there. |
CPU time
The reports and game records show the CPU time taken by the players, when available.
If an engine implements the gomill-cpu_time
command, its output is used. Otherwise, the ringmaster uses the CPU time of the engine process that it created, as returned by the wait4()
system call (user plus system time); unfortunately, this may not be meaningful, if the engine’s work isn’t all done directly in that process.
Querying the results
Gomill provides a Python library interface for processing the game results stored in a tournament’s state file.
This is documented in Tournament results API. See also the find_forfeits.py
example script.