game: matching_pennies_3p

GameType.chance_mode = ChanceMode.DETERMINISTIC
GameType.dynamics = Dynamics.SIMULTANEOUS
GameType.information = Information.ONE_SHOT
GameType.long_name = "Three-Player Matching Pennies"
GameType.max_num_players = 3
GameType.min_num_players = 3
GameType.parameter_specification = []
GameType.provides_information_state_string = True
GameType.provides_information_state_tensor = True
GameType.provides_observation_string = False
GameType.provides_observation_tensor = False
GameType.provides_factored_observation_string = False
GameType.reward_model = RewardModel.TERMINAL
GameType.short_name = "matching_pennies_3p"
GameType.utility = Utility.GENERAL_SUM

NumDistinctActions() = 2
PolicyTensorShape() = [2]
MaxChanceOutcomes() = 0
GetParameters() = {}
NumPlayers() = 3
MinUtility() = -1.0
MaxUtility() = 1.0
UtilitySum() = 0.0
InformationStateTensorShape() = [1]
InformationStateTensorLayout() = TensorLayout.CHW
InformationStateTensorSize() = 1
MaxGameLength() = 1
ToString() = "matching_pennies_3p()"

# State 0
# Normal form game default NFGState::ToString. Non-terminal
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = False
IsSimultaneousNode() = True
CurrentPlayer() = -2
InformationStateString(0) = "Observing player: 0. Non-terminal"
InformationStateString(1) = "Observing player: 1. Non-terminal"
InformationStateString(2) = "Observing player: 2. Non-terminal"
InformationStateTensor(0): ◯
InformationStateTensor(1): ◯
InformationStateTensor(2): ◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions(0) = [0, 1]
LegalActions(1) = [0, 1]
LegalActions(2) = [0, 1]
StringLegalActions(0) = ["Heads", "Tails"]
StringLegalActions(1) = ["Heads", "Tails"]
StringLegalActions(2) = ["Heads", "Tails"]

# Apply joint action ["Tails", "Tails", "Heads"]
actions: [1, 1, 0]

# State 1
# Normal form game default NFGState::ToString. Terminal, history: 1, 1, 0, returns: 1,-1,1
IsTerminal() = True
History() = [1, 1, 0]
HistoryString() = "1, 1, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "Observing player: 0. Terminal. History string: 1, 1, 0"
InformationStateString(1) = "Observing player: 1. Terminal. History string: 1, 1, 0"
InformationStateString(2) = "Observing player: 2. Terminal. History string: 1, 1, 0"
InformationStateTensor(0): ◉
InformationStateTensor(1): ◉
InformationStateTensor(2): ◉
Rewards() = [1.0, -1.0, 1.0]
Returns() = [1.0, -1.0, 1.0]
