Grail (C#)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
Grail.SimulatedGames.ISimulatedGameUnit Class Referenceabstract

Base class of a unit in the SimulatedGame framework. A unit represents part of the game-state and peforms actions that affect the game-state. You should not create instances of this class. Use specializations or instead. More...

Inheritance diagram for Grail.SimulatedGames.ISimulatedGameUnit:

Public Member Functions

abstract void Reset ()
 Resets state of the unit to the beginning of the SimulatedGame. More...
 
abstract List< ISimulatedGameActionGetAvailableActions ()
 Returns the actions the unit may perform. This method must always return the same set of actions in the same state. You can reuse ISimulatedGameAction objects, but create a new list before returning. More...
 
virtual ISimulatedGameAction GetRandomAvailableAction (Random random)
 Returns a random action to be chosen in simulation. The default implementation samples from GetAvailableActions(). Override the method if you are able to return a uniform random action without the need of computing all available actions. More...
 
virtual void AfterAction (in SimulatedGameRuntime gameRuntime)
 This method is called after action.Apply(). You may insert custom logic here - for example - code that always needs to be executed after any action. More...
 
virtual void FillDebugRepresentation (Dictionary< string, string > nameValueDictionary)
 Method used to gather data for GUI-based debugging. Insert properties of the state (key, value) you wish to view in the debugging tool. More...
 

Properties

abstract uint TeamIndex [get]
 Returns the index of a team. Units with the same team index share the same game score. More...
 
List< ISimulatedGameHeuristicHeuristicReasoners [get]
 Add or remove heuristic. See . Heuristic is used to provide the action to play in certain moments without considering all the options. More...
 

Detailed Description

Base class of a unit in the SimulatedGame framework. A unit represents part of the game-state and peforms actions that affect the game-state. You should not create instances of this class. Use specializations or instead.

Member Function Documentation

◆ AfterAction()

virtual void Grail.SimulatedGames.ISimulatedGameUnit.AfterAction ( in SimulatedGameRuntime  gameRuntime)
inlinevirtual

This method is called after action.Apply(). You may insert custom logic here - for example - code that always needs to be executed after any action.

◆ FillDebugRepresentation()

virtual void Grail.SimulatedGames.ISimulatedGameUnit.FillDebugRepresentation ( Dictionary< string, string >  nameValueDictionary)
inlinevirtual

Method used to gather data for GUI-based debugging. Insert properties of the state (key, value) you wish to view in the debugging tool.

Parameters
nameValueDictionary

◆ GetAvailableActions()

abstract List<ISimulatedGameAction> Grail.SimulatedGames.ISimulatedGameUnit.GetAvailableActions ( )
pure virtual

Returns the actions the unit may perform. This method must always return the same set of actions in the same state. You can reuse ISimulatedGameAction objects, but create a new list before returning.

◆ GetRandomAvailableAction()

virtual ISimulatedGameAction Grail.SimulatedGames.ISimulatedGameUnit.GetRandomAvailableAction ( Random  random)
inlinevirtual

Returns a random action to be chosen in simulation. The default implementation samples from GetAvailableActions(). Override the method if you are able to return a uniform random action without the need of computing all available actions.

Parameters
random
Returns

◆ Reset()

abstract void Grail.SimulatedGames.ISimulatedGameUnit.Reset ( )
pure virtual

Resets state of the unit to the beginning of the SimulatedGame.

Property Documentation

◆ HeuristicReasoners

List<ISimulatedGameHeuristic> Grail.SimulatedGames.ISimulatedGameUnit.HeuristicReasoners
get

Add or remove heuristic. See . Heuristic is used to provide the action to play in certain moments without considering all the options.

◆ TeamIndex

abstract uint Grail.SimulatedGames.ISimulatedGameUnit.TeamIndex
get

Returns the index of a team. Units with the same team index share the same game score.


The documentation for this class was generated from the following file: