Round Robin Tournament

Round Robin Tournament

The RoundRobinTournament executable class is one of the main entry points to using TAG. It takes a set of different agents and runs a round robin tournament between them. This page attempts to document all the run-time options available. For the most up-to-date summary, you can also look at the code, and/or by executing:

java -jar Tournament.jar --help

The arguments are all specified by command line tags:

Tag Description Default
game= The game to be played Uno
nPlayers= The number of players in each game 2
players= A directory that contains one .json file for each agent to be included in the tournament. See here for details. None
mode= exhaustive will iterate through every possible permutation of players across all game positions. random will allocate players randomly in each game, while ensuring that there are no duplicates in any one game, and that all players get the same number of games. exhaustive
selfPlay= if true then it is possible for multiple copies of a player to be included in any one game false
matchups= The number of games to run for each combination of players (mode=exhastive), or the total number of games to run (mode=random). 1
gameParams= A json file detailing the game parameters to use. See here for details. Game defaults
listener= The full name of an IGameListener implementation or the location of a json file from which a listener can be instantiated. A pipe-delimited list can be provided to gather many types of statistics. See section below on Listeners utilities.GameStatisticsListener
listenerFile= The file that the listener should log to (pipe-delimited if multiple listeners are specified). Not used if listener details are provided by a json file. None


Anything that implements the IGameListener interface can be used to listen to events generated by a game (such as at the end of a player’s turn, each time a player makes a decision, or at the end of a game; see the separate documentation on IGameListeners for more details on the technical implementation, including on specifying the configuration via a json file.

Useful defaults provided in the framework:

  • utilities.GameStatisticsListener logs generic information on the game, such as the min/max/median/mean action sizes, the length of a game and so on. This generates one record per game.
  • utilities.GameResultListener logs information on the result of each game - the name, score and ordinal position of each player. This generates one record per game.