game: blotto

GameType.chance_mode = ChanceMode.DETERMINISTIC
GameType.dynamics = Dynamics.SIMULTANEOUS
GameType.information = Information.ONE_SHOT
GameType.long_name = "Blotto"
GameType.max_num_players = 10
GameType.min_num_players = 2
GameType.parameter_specification = ["coins", "fields", "players"]
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 = "blotto"
GameType.utility = Utility.ZERO_SUM

NumDistinctActions() = 66
PolicyTensorShape() = [66]
MaxChanceOutcomes() = 0
GetParameters() = {coins=10,fields=3,players=2}
NumPlayers() = 2
MinUtility() = -1.0
MaxUtility() = 1.0
UtilitySum() = 0.0
InformationStateTensorShape() = [1]
InformationStateTensorLayout() = TensorLayout.CHW
InformationStateTensorSize() = 1
MaxGameLength() = 1
ToString() = "blotto()"

# State 0
# Terminal? 0
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = False
IsSimultaneousNode() = True
CurrentPlayer() = -2
InformationStateString(0) = "Observing player: 0. Non-terminal"
InformationStateString(1) = "Observing player: 1. Non-terminal"
InformationStateTensor(0): ◯
InformationStateTensor(1): ◯
Rewards() = [0.0, 0.0]
Returns() = []
LegalActions(0) = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]
LegalActions(1) = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65]
StringLegalActions(0) = ["[0,0,10]", "[0,1,9]", "[0,2,8]", "[0,3,7]", "[0,4,6]", "[0,5,5]", "[0,6,4]", "[0,7,3]", "[0,8,2]", "[0,9,1]", "[0,10,0]", "[1,0,9]", "[1,1,8]", "[1,2,7]", "[1,3,6]", "[1,4,5]", "[1,5,4]", "[1,6,3]", "[1,7,2]", "[1,8,1]", "[1,9,0]", "[2,0,8]", "[2,1,7]", "[2,2,6]", "[2,3,5]", "[2,4,4]", "[2,5,3]", "[2,6,2]", "[2,7,1]", "[2,8,0]", "[3,0,7]", "[3,1,6]", "[3,2,5]", "[3,3,4]", "[3,4,3]", "[3,5,2]", "[3,6,1]", "[3,7,0]", "[4,0,6]", "[4,1,5]", "[4,2,4]", "[4,3,3]", "[4,4,2]", "[4,5,1]", "[4,6,0]", "[5,0,5]", "[5,1,4]", "[5,2,3]", "[5,3,2]", "[5,4,1]", "[5,5,0]", "[6,0,4]", "[6,1,3]", "[6,2,2]", "[6,3,1]", "[6,4,0]", "[7,0,3]", "[7,1,2]", "[7,2,1]", "[7,3,0]", "[8,0,2]", "[8,1,1]", "[8,2,0]", "[9,0,1]", "[9,1,0]", "[10,0,0]"]
StringLegalActions(1) = ["[0,0,10]", "[0,1,9]", "[0,2,8]", "[0,3,7]", "[0,4,6]", "[0,5,5]", "[0,6,4]", "[0,7,3]", "[0,8,2]", "[0,9,1]", "[0,10,0]", "[1,0,9]", "[1,1,8]", "[1,2,7]", "[1,3,6]", "[1,4,5]", "[1,5,4]", "[1,6,3]", "[1,7,2]", "[1,8,1]", "[1,9,0]", "[2,0,8]", "[2,1,7]", "[2,2,6]", "[2,3,5]", "[2,4,4]", "[2,5,3]", "[2,6,2]", "[2,7,1]", "[2,8,0]", "[3,0,7]", "[3,1,6]", "[3,2,5]", "[3,3,4]", "[3,4,3]", "[3,5,2]", "[3,6,1]", "[3,7,0]", "[4,0,6]", "[4,1,5]", "[4,2,4]", "[4,3,3]", "[4,4,2]", "[4,5,1]", "[4,6,0]", "[5,0,5]", "[5,1,4]", "[5,2,3]", "[5,3,2]", "[5,4,1]", "[5,5,0]", "[6,0,4]", "[6,1,3]", "[6,2,2]", "[6,3,1]", "[6,4,0]", "[7,0,3]", "[7,1,2]", "[7,2,1]", "[7,3,0]", "[8,0,2]", "[8,1,1]", "[8,2,0]", "[9,0,1]", "[9,1,0]", "[10,0,0]"]

# Apply joint action ["[6,3,1]", "[7,2,1]"]
actions: [54, 58]

# State 1
# Terminal? 1
# P0 action: [6,3,1]
# P1 action: [7,2,1]
IsTerminal() = True
History() = [54, 58]
HistoryString() = "54, 58"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "Observing player: 0. Terminal. History string: 54, 58"
InformationStateString(1) = "Observing player: 1. Terminal. History string: 54, 58"
InformationStateTensor(0): ◉
InformationStateTensor(1): ◉
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
