game: catch

GameType.chance_mode = ChanceMode.EXPLICIT_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.PERFECT_INFORMATION
GameType.long_name = "Catch"
GameType.max_num_players = 1
GameType.min_num_players = 1
GameType.parameter_specification = ["columns", "rows"]
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 = "catch"
GameType.utility = Utility.GENERAL_SUM

NumDistinctActions() = 3
PolicyTensorShape() = [3]
MaxChanceOutcomes() = 5
GetParameters() = {columns=5,rows=10}
NumPlayers() = 1
MinUtility() = -1.0
MaxUtility() = 1.0
UtilitySum() = None
ObservationTensorShape() = [10, 5]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 50
MaxGameLength() = 10
ToString() = "catch()"

# State 0
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
ChanceOutcomes() = [{0, 0.200000000000}, {1, 0.200000000000}, {2, 0.200000000000}, {3, 0.200000000000}, {4, 0.200000000000}]
LegalActions() = [0, 1, 2, 3, 4]
StringLegalActions() = ["Initialized ball to 0", "Initialized ball to 1", "Initialized ball to 2", "Initialized ball to 3", "Initialized ball to 4"]

# Apply action "Initialized ball to 1"
action: 1

# State 1
# .o...
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# ..x..
IsTerminal() = False
History() = [1]
HistoryString() = "1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".o...\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n..x..\n"
ObservationTensor(0): ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◉◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "STAY"
action: 1

# State 2
# .....
# .o...
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# ..x..
IsTerminal() = False
History() = [1, 1]
HistoryString() = "1, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.o...\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n..x..\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◉◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "LEFT"
action: 0

# State 3
# .....
# .....
# .o...
# .....
# .....
# .....
# .....
# .....
# .....
# .x...
IsTerminal() = False
History() = [1, 1, 0]
HistoryString() = "1, 1, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.o...\n.....\n.....\n.....\n.....\n.....\n.....\n.x...\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "LEFT"
action: 0

# State 4
# .....
# .....
# .....
# .o...
# .....
# .....
# .....
# .....
# .....
# x....
IsTerminal() = False
History() = [1, 1, 0, 0]
HistoryString() = "1, 1, 0, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.o...\n.....\n.....\n.....\n.....\n.....\nx....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◉◯◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "STAY"
action: 1

# State 5
# .....
# .....
# .....
# .....
# .o...
# .....
# .....
# .....
# .....
# x....
IsTerminal() = False
History() = [1, 1, 0, 0, 1]
HistoryString() = "1, 1, 0, 0, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.....\n.o...\n.....\n.....\n.....\n.....\nx....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◉◯◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "STAY"
action: 1

# State 6
# .....
# .....
# .....
# .....
# .....
# .o...
# .....
# .....
# .....
# x....
IsTerminal() = False
History() = [1, 1, 0, 0, 1, 1]
HistoryString() = "1, 1, 0, 0, 1, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.o...\n.....\n.....\n.....\nx....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◉◯◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "LEFT"
action: 0

# State 7
# .....
# .....
# .....
# .....
# .....
# .....
# .o...
# .....
# .....
# x....
IsTerminal() = False
History() = [1, 1, 0, 0, 1, 1, 0]
HistoryString() = "1, 1, 0, 0, 1, 1, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.....\n.o...\n.....\n.....\nx....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◉◯◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "LEFT"
action: 0

# State 8
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .o...
# .....
# x....
IsTerminal() = False
History() = [1, 1, 0, 0, 1, 1, 0, 0]
HistoryString() = "1, 1, 0, 0, 1, 1, 0, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.....\n.....\n.o...\n.....\nx....\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◯◯◯◯
                      ◉◯◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "RIGHT"
action: 2

# State 9
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .o...
# .x...
IsTerminal() = False
History() = [1, 1, 0, 0, 1, 1, 0, 0, 2]
HistoryString() = "1, 1, 0, 0, 1, 1, 0, 0, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.o...\n.x...\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
                      ◯◉◯◯◯
Rewards() = [0.0]
Returns() = [0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["LEFT", "STAY", "RIGHT"]

# Apply action "STAY"
action: 1

# State 10
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .....
# .x...
IsTerminal() = True
History() = [1, 1, 0, 0, 1, 1, 0, 0, 2, 1]
HistoryString() = "1, 1, 0, 0, 1, 1, 0, 0, 2, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
ObservationString(0) = ".....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.....\n.x...\n"
ObservationTensor(0): ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◯◯◯◯
                      ◯◉◯◯◯
Rewards() = [1.0]
Returns() = [1.0]
