Skip to content

Players and Agents

Claudio Bonesana edited this page Apr 14, 2021 · 1 revision

The idea for the Agents and the Players is to use a common interface Agent that can be easily used by the MatchManager. This interface is composed following methods:

Although the first two look similar, they need to be differentiated because the response state offers the possibility to skip the generation of an action. This possibility is something that the Player or Agent need to keep in mind during the design stage.

In the case that something is not doable, i.e. skip the response action or if a figure does not have action doable, please raise the ValueError exception in order to inform the MatchManager that there will not be an action available.

There could be the possibility that some scenarios require an initialization step. In this step the Player or Agent need to think on how to setup their figures. There are three possible situations that need to be considered: the units are set; the units are already placed but the Player need to choose which positions to use; the units are not set but there is an area where the units can be placed.

The methods initialize() and chooseFigureGroups() are intended to be used to fulfill this task and respectively initialize the units in a placement zone, or choose between groups of already placed units.

Please, check the agents.adversarial.RandomAgent class for an example of implementation of a random player and on how to properly implement these functions.

Clone this wiki locally