game: trade_comm

GameType.chance_mode = ChanceMode.EXPLICIT_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.IMPERFECT_INFORMATION
GameType.long_name = "Trading and Communication"
GameType.max_num_players = 2
GameType.min_num_players = 2
GameType.parameter_specification = ["num_items"]
GameType.provides_information_state_string = True
GameType.provides_information_state_tensor = False
GameType.provides_observation_string = True
GameType.provides_observation_tensor = True
GameType.provides_factored_observation_string = False
GameType.reward_model = RewardModel.TERMINAL
GameType.short_name = "trade_comm"
GameType.utility = Utility.GENERAL_SUM

NumDistinctActions() = 110
PolicyTensorShape() = [110]
MaxChanceOutcomes() = 100
GetParameters() = {num_items=10}
NumPlayers() = 2
MinUtility() = 0.0
MaxUtility() = 1.0
UtilitySum() = None
ObservationTensorShape() = [37]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 37
MaxGameLength() = 4
ToString() = "trade_comm()"

# State 0
# Initial chance node
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "ChanceNode -- no observation"
InformationStateString(1) = "ChanceNode -- no observation"
ObservationString(0) = "ChanceNode -- no observation"
ObservationString(1) = "ChanceNode -- no observation"
ObservationTensor(0): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{0, 0.010000000000}, {1, 0.010000000000}, {2, 0.010000000000}, {3, 0.010000000000}, {4, 0.010000000000}, {5, 0.010000000000}, {6, 0.010000000000}, {7, 0.010000000000}, {8, 0.010000000000}, {9, 0.010000000000}, {10, 0.010000000000}, {11, 0.010000000000}, {12, 0.010000000000}, {13, 0.010000000000}, {14, 0.010000000000}, {15, 0.010000000000}, {16, 0.010000000000}, {17, 0.010000000000}, {18, 0.010000000000}, {19, 0.010000000000}, {20, 0.010000000000}, {21, 0.010000000000}, {22, 0.010000000000}, {23, 0.010000000000}, {24, 0.010000000000}, {25, 0.010000000000}, {26, 0.010000000000}, {27, 0.010000000000}, {28, 0.010000000000}, {29, 0.010000000000}, {30, 0.010000000000}, {31, 0.010000000000}, {32, 0.010000000000}, {33, 0.010000000000}, {34, 0.010000000000}, {35, 0.010000000000}, {36, 0.010000000000}, {37, 0.010000000000}, {38, 0.010000000000}, {39, 0.010000000000}, {40, 0.010000000000}, {41, 0.010000000000}, {42, 0.010000000000}, {43, 0.010000000000}, {44, 0.010000000000}, {45, 0.010000000000}, {46, 0.010000000000}, {47, 0.010000000000}, {48, 0.010000000000}, {49, 0.010000000000}, {50, 0.010000000000}, {51, 0.010000000000}, {52, 0.010000000000}, {53, 0.010000000000}, {54, 0.010000000000}, {55, 0.010000000000}, {56, 0.010000000000}, {57, 0.010000000000}, {58, 0.010000000000}, {59, 0.010000000000}, {60, 0.010000000000}, {61, 0.010000000000}, {62, 0.010000000000}, {63, 0.010000000000}, {64, 0.010000000000}, {65, 0.010000000000}, {66, 0.010000000000}, {67, 0.010000000000}, {68, 0.010000000000}, {69, 0.010000000000}, {70, 0.010000000000}, {71, 0.010000000000}, {72, 0.010000000000}, {73, 0.010000000000}, {74, 0.010000000000}, {75, 0.010000000000}, {76, 0.010000000000}, {77, 0.010000000000}, {78, 0.010000000000}, {79, 0.010000000000}, {80, 0.010000000000}, {81, 0.010000000000}, {82, 0.010000000000}, {83, 0.010000000000}, {84, 0.010000000000}, {85, 0.010000000000}, {86, 0.010000000000}, {87, 0.010000000000}, {88, 0.010000000000}, {89, 0.010000000000}, {90, 0.010000000000}, {91, 0.010000000000}, {92, 0.010000000000}, {93, 0.010000000000}, {94, 0.010000000000}, {95, 0.010000000000}, {96, 0.010000000000}, {97, 0.010000000000}, {98, 0.010000000000}, {99, 0.010000000000}]
LegalActions() = [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, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
StringLegalActions() = ["Allocate 0 0", "Allocate 0 1", "Allocate 0 2", "Allocate 0 3", "Allocate 0 4", "Allocate 0 5", "Allocate 0 6", "Allocate 0 7", "Allocate 0 8", "Allocate 0 9", "Allocate 1 0", "Allocate 1 1", "Allocate 1 2", "Allocate 1 3", "Allocate 1 4", "Allocate 1 5", "Allocate 1 6", "Allocate 1 7", "Allocate 1 8", "Allocate 1 9", "Allocate 2 0", "Allocate 2 1", "Allocate 2 2", "Allocate 2 3", "Allocate 2 4", "Allocate 2 5", "Allocate 2 6", "Allocate 2 7", "Allocate 2 8", "Allocate 2 9", "Allocate 3 0", "Allocate 3 1", "Allocate 3 2", "Allocate 3 3", "Allocate 3 4", "Allocate 3 5", "Allocate 3 6", "Allocate 3 7", "Allocate 3 8", "Allocate 3 9", "Allocate 4 0", "Allocate 4 1", "Allocate 4 2", "Allocate 4 3", "Allocate 4 4", "Allocate 4 5", "Allocate 4 6", "Allocate 4 7", "Allocate 4 8", "Allocate 4 9", "Allocate 5 0", "Allocate 5 1", "Allocate 5 2", "Allocate 5 3", "Allocate 5 4", "Allocate 5 5", "Allocate 5 6", "Allocate 5 7", "Allocate 5 8", "Allocate 5 9", "Allocate 6 0", "Allocate 6 1", "Allocate 6 2", "Allocate 6 3", "Allocate 6 4", "Allocate 6 5", "Allocate 6 6", "Allocate 6 7", "Allocate 6 8", "Allocate 6 9", "Allocate 7 0", "Allocate 7 1", "Allocate 7 2", "Allocate 7 3", "Allocate 7 4", "Allocate 7 5", "Allocate 7 6", "Allocate 7 7", "Allocate 7 8", "Allocate 7 9", "Allocate 8 0", "Allocate 8 1", "Allocate 8 2", "Allocate 8 3", "Allocate 8 4", "Allocate 8 5", "Allocate 8 6", "Allocate 8 7", "Allocate 8 8", "Allocate 8 9", "Allocate 9 0", "Allocate 9 1", "Allocate 9 2", "Allocate 9 3", "Allocate 9 4", "Allocate 9 5", "Allocate 9 6", "Allocate 9 7", "Allocate 9 8", "Allocate 9 9"]

# Apply action "Allocate 9 0"
action: 90

# State 1
# Items: 9 0
# Phase: comm
# Comm history:
# Trade history:
IsTerminal() = False
History() = [90]
HistoryString() = "90"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "Current turn: 0\nMy item: 9\nPhase: comm\nComm history: \nTrade history size: 0\n"
InformationStateString(1) = "Current turn: 0\nMy item: 0\nPhase: comm\nComm history: \nTrade history size: 0\n"
ObservationString(0) = "Current turn: 0\nMy item: 9\nPhase: comm\nComm history: \nTrade history size: 0\n"
ObservationString(1) = "Current turn: 0\nMy item: 0\nPhase: comm\nComm history: \nTrade history size: 0\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯
ObservationTensor(1): ◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
StringLegalActions() = ["Utter 0", "Utter 1", "Utter 2", "Utter 3", "Utter 4", "Utter 5", "Utter 6", "Utter 7", "Utter 8", "Utter 9"]

# Apply action "Utter 8"
action: 8

# State 2
# Items: 9 0
# Phase: comm
# Comm history: 8
# Trade history:
IsTerminal() = False
History() = [90, 8]
HistoryString() = "90, 8"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "Current turn: 1\nMy item: 9\nPhase: comm\nComm history:  8\nTrade history size: 0\n"
InformationStateString(1) = "Current turn: 1\nMy item: 0\nPhase: comm\nComm history:  8\nTrade history size: 0\n"
ObservationString(0) = "Current turn: 1\nMy item: 9\nPhase: comm\nComm history:  8\nTrade history size: 0\n"
ObservationString(1) = "Current turn: 1\nMy item: 0\nPhase: comm\nComm history:  8\nTrade history size: 0\n"
ObservationTensor(0): ◯◉◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◉◯◯
ObservationTensor(1): ◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
StringLegalActions() = ["Utter 0", "Utter 1", "Utter 2", "Utter 3", "Utter 4", "Utter 5", "Utter 6", "Utter 7", "Utter 8", "Utter 9"]

# Apply action "Utter 2"
action: 2

# State 3
# Items: 9 0
# Phase: trade
# Comm history: 8 2
# Trade history:
IsTerminal() = False
History() = [90, 8, 2]
HistoryString() = "90, 8, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "Current turn: 0\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 0\n"
InformationStateString(1) = "Current turn: 0\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 0\n"
ObservationString(0) = "Current turn: 0\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 0\n"
ObservationString(1) = "Current turn: 0\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 0\n"
ObservationTensor(0): ◉◯◯◉◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯
ObservationTensor(1): ◉◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [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, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
StringLegalActions() = ["Trade 0:0", "Trade 0:1", "Trade 0:2", "Trade 0:3", "Trade 0:4", "Trade 0:5", "Trade 0:6", "Trade 0:7", "Trade 0:8", "Trade 0:9", "Trade 1:0", "Trade 1:1", "Trade 1:2", "Trade 1:3", "Trade 1:4", "Trade 1:5", "Trade 1:6", "Trade 1:7", "Trade 1:8", "Trade 1:9", "Trade 2:0", "Trade 2:1", "Trade 2:2", "Trade 2:3", "Trade 2:4", "Trade 2:5", "Trade 2:6", "Trade 2:7", "Trade 2:8", "Trade 2:9", "Trade 3:0", "Trade 3:1", "Trade 3:2", "Trade 3:3", "Trade 3:4", "Trade 3:5", "Trade 3:6", "Trade 3:7", "Trade 3:8", "Trade 3:9", "Trade 4:0", "Trade 4:1", "Trade 4:2", "Trade 4:3", "Trade 4:4", "Trade 4:5", "Trade 4:6", "Trade 4:7", "Trade 4:8", "Trade 4:9", "Trade 5:0", "Trade 5:1", "Trade 5:2", "Trade 5:3", "Trade 5:4", "Trade 5:5", "Trade 5:6", "Trade 5:7", "Trade 5:8", "Trade 5:9", "Trade 6:0", "Trade 6:1", "Trade 6:2", "Trade 6:3", "Trade 6:4", "Trade 6:5", "Trade 6:6", "Trade 6:7", "Trade 6:8", "Trade 6:9", "Trade 7:0", "Trade 7:1", "Trade 7:2", "Trade 7:3", "Trade 7:4", "Trade 7:5", "Trade 7:6", "Trade 7:7", "Trade 7:8", "Trade 7:9", "Trade 8:0", "Trade 8:1", "Trade 8:2", "Trade 8:3", "Trade 8:4", "Trade 8:5", "Trade 8:6", "Trade 8:7", "Trade 8:8", "Trade 8:9", "Trade 9:0", "Trade 9:1", "Trade 9:2", "Trade 9:3", "Trade 9:4", "Trade 9:5", "Trade 9:6", "Trade 9:7", "Trade 9:8", "Trade 9:9"]

# Apply action "Trade 4:1"
action: 51

# State 4
# Items: 9 0
# Phase: trade
# Comm history: 8 2
# Trade history: 4:1
IsTerminal() = False
History() = [90, 8, 2, 51]
HistoryString() = "90, 8, 2, 51"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "Current turn: 1\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 1\nObserver's trade offer:  4:1\n"
InformationStateString(1) = "Current turn: 1\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 1\n"
ObservationString(0) = "Current turn: 1\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 1\nObserver's trade offer:  4:1\n"
ObservationString(1) = "Current turn: 1\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 1\n"
ObservationTensor(0): ◯◉◯◉◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯
ObservationTensor(1): ◯◉◯◉◉◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◉◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [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, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
StringLegalActions() = ["Trade 0:0", "Trade 0:1", "Trade 0:2", "Trade 0:3", "Trade 0:4", "Trade 0:5", "Trade 0:6", "Trade 0:7", "Trade 0:8", "Trade 0:9", "Trade 1:0", "Trade 1:1", "Trade 1:2", "Trade 1:3", "Trade 1:4", "Trade 1:5", "Trade 1:6", "Trade 1:7", "Trade 1:8", "Trade 1:9", "Trade 2:0", "Trade 2:1", "Trade 2:2", "Trade 2:3", "Trade 2:4", "Trade 2:5", "Trade 2:6", "Trade 2:7", "Trade 2:8", "Trade 2:9", "Trade 3:0", "Trade 3:1", "Trade 3:2", "Trade 3:3", "Trade 3:4", "Trade 3:5", "Trade 3:6", "Trade 3:7", "Trade 3:8", "Trade 3:9", "Trade 4:0", "Trade 4:1", "Trade 4:2", "Trade 4:3", "Trade 4:4", "Trade 4:5", "Trade 4:6", "Trade 4:7", "Trade 4:8", "Trade 4:9", "Trade 5:0", "Trade 5:1", "Trade 5:2", "Trade 5:3", "Trade 5:4", "Trade 5:5", "Trade 5:6", "Trade 5:7", "Trade 5:8", "Trade 5:9", "Trade 6:0", "Trade 6:1", "Trade 6:2", "Trade 6:3", "Trade 6:4", "Trade 6:5", "Trade 6:6", "Trade 6:7", "Trade 6:8", "Trade 6:9", "Trade 7:0", "Trade 7:1", "Trade 7:2", "Trade 7:3", "Trade 7:4", "Trade 7:5", "Trade 7:6", "Trade 7:7", "Trade 7:8", "Trade 7:9", "Trade 8:0", "Trade 8:1", "Trade 8:2", "Trade 8:3", "Trade 8:4", "Trade 8:5", "Trade 8:6", "Trade 8:7", "Trade 8:8", "Trade 8:9", "Trade 9:0", "Trade 9:1", "Trade 9:2", "Trade 9:3", "Trade 9:4", "Trade 9:5", "Trade 9:6", "Trade 9:7", "Trade 9:8", "Trade 9:9"]

# Apply action "Trade 2:8"
action: 38

# State 5
# Items: 9 0
# Phase: trade
# Comm history: 8 2
# Trade history: 4:1 2:8
IsTerminal() = True
History() = [90, 8, 2, 51, 38]
HistoryString() = "90, 8, 2, 51, 38"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "Current turn: 0\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 2\nObserver's trade offer:  4:1\nOther players's trade offer:  2:8\n"
InformationStateString(1) = "Current turn: 0\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 2\nObserver's trade offer:  2:8\nOther players's trade offer:  4:1\n"
ObservationString(0) = "Current turn: 0\nMy item: 9\nPhase: trade\nComm history:  8 2\nTrade history size: 2\nObserver's trade offer:  4:1\nOther players's trade offer:  2:8\n"
ObservationString(1) = "Current turn: 0\nMy item: 0\nPhase: trade\nComm history:  8 2\nTrade history size: 2\nObserver's trade offer:  2:8\nOther players's trade offer:  4:1\n"
ObservationTensor(0): ◉◯◉◉◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◉◯◉◉◉◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◉
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
