game: pig(players=3,horizon=10,winscore=10)

GameType.chance_mode = ChanceMode.EXPLICIT_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.PERFECT_INFORMATION
GameType.long_name = "Pig"
GameType.max_num_players = 10
GameType.min_num_players = 2
GameType.parameter_specification = ["diceoutcomes", "horizon", "players", "winscore"]
GameType.provides_information_state_string = False
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 = "pig"
GameType.utility = Utility.ZERO_SUM

NumDistinctActions() = 6
PolicyTensorShape() = [6]
MaxChanceOutcomes() = 6
GetParameters() = {diceoutcomes=6,horizon=10,players=3,winscore=10}
NumPlayers() = 3
MinUtility() = -1.0
MaxUtility() = 1.0
UtilitySum() = 0.0
ObservationTensorShape() = [4, 11]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 44
MaxGameLength() = 10
ToString() = "pig(horizon=10,players=3,winscore=10)"

# State 0
# Scores: 0 0 0, Turn total: 0
# Current player: 0
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 0\n"
ObservationString(1) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 0\n"
ObservationString(2) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 0\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 1
# Scores: 0 0 0, Turn total: 0
# Current player: 1
IsTerminal() = False
History() = [1]
HistoryString() = "1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
ObservationString(0) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1\n"
ObservationString(1) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1\n"
ObservationString(2) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "roll"
action: 0

# State 2
# Scores: 0 0 0, Turn total: 0
# Current player: 1 (rolling)
IsTerminal() = False
History() = [1, 0]
HistoryString() = "1, 0"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
ObservationString(0) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1 (rolling)\n"
ObservationString(1) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1 (rolling)\n"
ObservationString(2) = "Scores: 0 0 0, Turn total: 0\nCurrent player: 1 (rolling)\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{0, 0.166666666667}, {1, 0.166666666667}, {2, 0.166666666667}, {3, 0.166666666667}, {4, 0.166666666667}, {5, 0.166666666667}]
LegalActions() = [0, 1, 2, 3, 4, 5]
StringLegalActions() = ["Roll 1", "Roll 2", "Roll 3", "Roll 4", "Roll 5", "Roll 6"]

# Apply action "Roll 4"
action: 3

# State 3
# Scores: 0 0 0, Turn total: 4
# Current player: 1
IsTerminal() = False
History() = [1, 0, 3]
HistoryString() = "1, 0, 3"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
ObservationString(0) = "Scores: 0 0 0, Turn total: 4\nCurrent player: 1\n"
ObservationString(1) = "Scores: 0 0 0, Turn total: 4\nCurrent player: 1\n"
ObservationString(2) = "Scores: 0 0 0, Turn total: 4\nCurrent player: 1\n"
ObservationTensor(0): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 4
# Scores: 0 4 0, Turn total: 0
# Current player: 2
IsTerminal() = False
History() = [1, 0, 3, 1]
HistoryString() = "1, 0, 3, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
ObservationString(0) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2\n"
ObservationString(1) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2\n"
ObservationString(2) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "roll"
action: 0

# State 5
# Scores: 0 4 0, Turn total: 0
# Current player: 2 (rolling)
IsTerminal() = False
History() = [1, 0, 3, 1, 0]
HistoryString() = "1, 0, 3, 1, 0"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
ObservationString(0) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationString(1) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationString(2) = "Scores: 0 4 0, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{0, 0.166666666667}, {1, 0.166666666667}, {2, 0.166666666667}, {3, 0.166666666667}, {4, 0.166666666667}, {5, 0.166666666667}]
LegalActions() = [0, 1, 2, 3, 4, 5]
StringLegalActions() = ["Roll 1", "Roll 2", "Roll 3", "Roll 4", "Roll 5", "Roll 6"]

# Apply action "Roll 3"
action: 2

# State 6
# Scores: 0 4 0, Turn total: 3
# Current player: 2
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2]
HistoryString() = "1, 0, 3, 1, 0, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
ObservationString(0) = "Scores: 0 4 0, Turn total: 3\nCurrent player: 2\n"
ObservationString(1) = "Scores: 0 4 0, Turn total: 3\nCurrent player: 2\n"
ObservationString(2) = "Scores: 0 4 0, Turn total: 3\nCurrent player: 2\n"
ObservationTensor(0): ◯◯◯◉◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◉◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◉◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 7
# Scores: 0 4 3, Turn total: 0
# Current player: 0
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1]
HistoryString() = "1, 0, 3, 1, 0, 2, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 0\n"
ObservationString(1) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 0\n"
ObservationString(2) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 0\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 8
# Scores: 0 4 3, Turn total: 0
# Current player: 1
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1, 1]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
ObservationString(0) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 1\n"
ObservationString(1) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 1\n"
ObservationString(2) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 1\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 9
# Scores: 0 4 3, Turn total: 0
# Current player: 2
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1, 1, 1]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
ObservationString(0) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2\n"
ObservationString(1) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2\n"
ObservationString(2) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "roll"
action: 0

# State 10
# Scores: 0 4 3, Turn total: 0
# Current player: 2 (rolling)
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1, 1, 1, 0]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1, 1, 0"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
ObservationString(0) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationString(1) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationString(2) = "Scores: 0 4 3, Turn total: 0\nCurrent player: 2 (rolling)\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ChanceOutcomes() = [{0, 0.166666666667}, {1, 0.166666666667}, {2, 0.166666666667}, {3, 0.166666666667}, {4, 0.166666666667}, {5, 0.166666666667}]
LegalActions() = [0, 1, 2, 3, 4, 5]
StringLegalActions() = ["Roll 1", "Roll 2", "Roll 3", "Roll 4", "Roll 5", "Roll 6"]

# Apply action "Roll 4"
action: 3

# State 11
# Scores: 0 4 3, Turn total: 4
# Current player: 2
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
ObservationString(0) = "Scores: 0 4 3, Turn total: 4\nCurrent player: 2\n"
ObservationString(1) = "Scores: 0 4 3, Turn total: 4\nCurrent player: 2\n"
ObservationString(2) = "Scores: 0 4 3, Turn total: 4\nCurrent player: 2\n"
ObservationTensor(0): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◯◉◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◉◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "stop"
action: 1

# State 12
# Scores: 0 4 7, Turn total: 0
# Current player: 0
IsTerminal() = False
History() = [1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3, 1]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0\n"
ObservationString(1) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0\n"
ObservationString(2) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1]
StringLegalActions() = ["roll", "stop"]

# Apply action "roll"
action: 0

# State 13
# Scores: 0 4 7, Turn total: 0
# Current player: 0 (rolling)
IsTerminal() = True
History() = [1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3, 1, 0]
HistoryString() = "1, 0, 3, 1, 0, 2, 1, 1, 1, 0, 3, 1, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
ObservationString(0) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0 (rolling)\n"
ObservationString(1) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0 (rolling)\n"
ObservationString(2) = "Scores: 0 4 7, Turn total: 0\nCurrent player: 0 (rolling)\n"
ObservationTensor(0): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
ObservationTensor(1): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
ObservationTensor(2): ◉◯◯◯◯◯◯◯◯◯◯
                      ◉◯◯◯◯◯◯◯◯◯◯
                      ◯◯◯◯◉◯◯◯◯◯◯
                      ◯◯◯◯◯◯◯◉◯◯◯
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
