Front End

The FrontEnd (gui.Frontend) should be used to play a game against AI agents in the GUI. This does not take any parameters, and will start a Swing GUI (see diagram) with some key fields:

Diagram001

Field Description
Game Type The Game to run. Select from a drop-down list of all the games currently supported by TAG. After selecting a game, the Edit button will enable you to amend the game parameters (where these are tunable)
#Players The number of players to have in the game. After selecting this, press the Update button to add the extra Players in the next fields so that you can set the agent that each should use.
Player 0 A drop-down list of a few supported agents. For the MCTS and RMHC agents (currently) you will then be offered two buttons to Edit or Load JSON. The first of these allows you to edit the basic parameters (e.g. to give the agents different computational budgets. The second allows you to load a pre-defined JSON file, which allows much more sophisticated agents to be used. For details on these JSON files, see this documentation.
Player N … and then this is specified for each agent in the game. (The default is a Random agent.)
Pause The number of milliseconds to insert between each move. This is to help see what the agents are doing, as it is impossible to track a game’s progress if all decisions are made in milliseconds.

The Play and Pause buttons then do what you would expect.

The game GUIs are not very well behaved on smaller screens, and may not appear at all for some games on small laptops.

The details of the GUI vary for each game. The most basic will provide a list of actions that the human player can take as a line of buttons at the bottom of the screen. Others have implemented a more intuitive point-and-click interface. Remember that the main function of TAG is for research, and the RunGames functionality if the main entry point for this. The GUI is primarily useful for debugging games (supplementing unit tests), and for getting a feel for how an agent plays to get insight into its strategy.