game: hex(board_size=5)

GameType.chance_mode = ChanceMode.DETERMINISTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.PERFECT_INFORMATION
GameType.long_name = "Hex"
GameType.max_num_players = 2
GameType.min_num_players = 2
GameType.parameter_specification = ["board_size"]
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 = "hex"
GameType.utility = Utility.ZERO_SUM

NumDistinctActions() = 25
PolicyTensorShape() = [25]
MaxChanceOutcomes() = 0
GetParameters() = {board_size=5}
NumPlayers() = 2
MinUtility() = -1.0
MaxUtility() = 1.0
UtilitySum() = 0.0
ObservationTensorShape() = [9, 5, 5]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 225
MaxGameLength() = 25
ToString() = "hex(board_size=5)"

# State 0
# . . . . .
#  . . . . .
#   . . . . .
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = ""
InformationStateString(1) = ""
ObservationString(0) = ". . . . . \n . . . . . \n  . . . . . \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . . \n . . . . . \n  . . . . . \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . . \n . . . . . \n  . . . . . \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
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, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["y(0,0)", "y(1,0)", "y(2,0)", "y(3,0)", "y(4,0)", "x(0,1)", "x(1,1)", "x(2,1)", "x(3,1)", "x(4,1)", "x(0,2)", "x(1,2)", "x(2,2)", "x(3,2)", "x(4,2)", "x(0,3)", "x(1,3)", "x(2,3)", "x(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(2,4)", "z(3,4)", "z(4,4)"]

# Apply action "x(2,2)"
action: 12

# State 1
# . . . . .
#  . . . . .
#   . . x . .
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12]
HistoryString() = "12"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12"
InformationStateString(1) = "12"
ObservationString(0) = ". . . . . \n . . . . . \n  . . x . . \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . . \n . . . . . \n  . . x . . \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . . \n . . . . . \n  . . x . . \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
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, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["p(0,0)", "o(1,0)", "o(2,0)", "o(3,0)", "q(4,0)", "p(0,1)", "o(1,1)", "o(2,1)", "o(3,1)", "q(4,1)", "p(0,2)", "o(1,2)", "o(3,2)", "q(4,2)", "p(0,3)", "o(1,3)", "o(2,3)", "o(3,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(2,4)", "o(3,4)", "q(4,4)"]

# Apply action "o(1,2)"
action: 11

# State 2
# . . . . .
#  . . . . .
#   . o x . .
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12, 11]
HistoryString() = "12, 11"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11"
InformationStateString(1) = "12, 11"
ObservationString(0) = ". . . . . \n . . . . . \n  . o x . . \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . . \n . . . . . \n  . o x . . \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . . \n . . . . . \n  . o x . . \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
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, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["y(0,0)", "y(1,0)", "y(2,0)", "y(3,0)", "y(4,0)", "x(0,1)", "x(1,1)", "x(2,1)", "x(3,1)", "x(4,1)", "x(0,2)", "x(3,2)", "x(4,2)", "x(0,3)", "x(1,3)", "x(2,3)", "x(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(2,4)", "z(3,4)", "z(4,4)"]

# Apply action "x(0,2)"
action: 10

# State 3
# . . . . .
#  . . . . .
#   x o x . .
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12, 11, 10]
HistoryString() = "12, 11, 10"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10"
InformationStateString(1) = "12, 11, 10"
ObservationString(0) = ". . . . . \n . . . . . \n  x o x . . \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . . \n . . . . . \n  x o x . . \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . . \n . . . . . \n  x o x . . \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
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, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["p(0,0)", "o(1,0)", "o(2,0)", "o(3,0)", "q(4,0)", "p(0,1)", "o(1,1)", "o(2,1)", "o(3,1)", "q(4,1)", "o(3,2)", "q(4,2)", "p(0,3)", "o(1,3)", "o(2,3)", "o(3,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(2,4)", "o(3,4)", "q(4,4)"]

# Apply action "q(4,2)"
action: 14

# State 4
# . . . . .
#  . . . . .
#   x o x . q
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12, 11, 10, 14]
HistoryString() = "12, 11, 10, 14"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14"
InformationStateString(1) = "12, 11, 10, 14"
ObservationString(0) = ". . . . . \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . . \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . . \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
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, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["y(0,0)", "y(1,0)", "y(2,0)", "y(3,0)", "y(4,0)", "x(0,1)", "x(1,1)", "x(2,1)", "x(3,1)", "x(4,1)", "x(3,2)", "x(0,3)", "x(1,3)", "x(2,3)", "x(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(2,4)", "z(3,4)", "z(4,4)"]

# Apply action "y(4,0)"
action: 4

# State 5
# . . . . y
#  . . . . .
#   x o x . q
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4]
HistoryString() = "12, 11, 10, 14, 4"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4"
InformationStateString(1) = "12, 11, 10, 14, 4"
ObservationString(0) = ". . . . y \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . y \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . y \n . . . . . \n  x o x . q \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 1, 2, 3, 5, 6, 7, 8, 9, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["p(0,0)", "o(1,0)", "o(2,0)", "o(3,0)", "p(0,1)", "o(1,1)", "o(2,1)", "o(3,1)", "q(4,1)", "q(3,2)", "p(0,3)", "o(1,3)", "o(2,3)", "q(3,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(2,4)", "o(3,4)", "q(4,4)"]

# Apply action "o(3,1)"
action: 8

# State 6
# . . . . y
#  . . . o .
#   x o x . q
#    . . . . .
#     . . . . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8]
HistoryString() = "12, 11, 10, 14, 4, 8"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8"
InformationStateString(1) = "12, 11, 10, 14, 4, 8"
ObservationString(0) = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . . . . "
ObservationString(1) = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . . . . "
PublicObservationString() = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . . . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 1, 2, 3, 5, 6, 7, 9, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
StringLegalActions() = ["y(0,0)", "y(1,0)", "y(2,0)", "y(3,0)", "x(0,1)", "x(1,1)", "x(2,1)", "y(4,1)", "x(3,2)", "x(0,3)", "x(1,3)", "x(2,3)", "x(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(2,4)", "z(3,4)", "z(4,4)"]

# Apply action "z(2,4)"
action: 22

# State 7
# . . . . y
#  . . . o .
#   x o x . q
#    . . . . .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22]
HistoryString() = "12, 11, 10, 14, 4, 8, 22"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22"
ObservationString(0) = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
ObservationString(1) = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
PublicObservationString() = ". . . . y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 1, 2, 3, 5, 6, 7, 9, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24]
StringLegalActions() = ["p(0,0)", "o(1,0)", "o(2,0)", "o(3,0)", "p(0,1)", "o(1,1)", "o(2,1)", "q(4,1)", "q(3,2)", "p(0,3)", "o(1,3)", "o(2,3)", "q(3,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(3,4)", "q(4,4)"]

# Apply action "o(3,0)"
action: 3

# State 8
# . . . o y
#  . . . o .
#   x o x . q
#    . . . . .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3"
ObservationString(0) = ". . . o y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
ObservationString(1) = ". . . o y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
PublicObservationString() = ". . . o y \n . . . o . \n  x o x . q \n   . . . . . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 1, 2, 5, 6, 7, 9, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24]
StringLegalActions() = ["y(0,0)", "y(1,0)", "y(2,0)", "x(0,1)", "x(1,1)", "x(2,1)", "y(4,1)", "x(3,2)", "x(0,3)", "x(1,3)", "z(2,3)", "z(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(3,4)", "z(4,4)"]

# Apply action "x(2,1)"
action: 7

# State 9
# . . . o y
#  . . x o .
#   x o x . q
#    . . . . .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7"
ObservationString(0) = ". . . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
ObservationString(1) = ". . . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
PublicObservationString() = ". . . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 1, 2, 5, 6, 9, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24]
StringLegalActions() = ["p(0,0)", "o(1,0)", "o(2,0)", "p(0,1)", "o(1,1)", "q(4,1)", "q(3,2)", "p(0,3)", "o(1,3)", "o(2,3)", "q(3,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(3,4)", "q(4,4)"]

# Apply action "o(1,0)"
action: 1

# State 10
# . o . o y
#  . . x o .
#   x o x . q
#    . . . . .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1"
ObservationString(0) = ". o . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
ObservationString(1) = ". o . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
PublicObservationString() = ". o . o y \n . . x o . \n  x o x . q \n   . . . . . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 6, 9, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24]
StringLegalActions() = ["y(0,0)", "y(2,0)", "x(0,1)", "x(1,1)", "y(4,1)", "x(3,2)", "x(0,3)", "x(1,3)", "z(2,3)", "z(3,3)", "x(4,3)", "z(0,4)", "z(1,4)", "z(3,4)", "z(4,4)"]

# Apply action "z(3,3)"
action: 18

# State 11
# . o . o y
#  . . x o .
#   x o x . q
#    . . . z .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18"
ObservationString(0) = ". o . o y \n . . x o . \n  x o x . q \n   . . . z . \n    . . z . . "
ObservationString(1) = ". o . o y \n . . x o . \n  x o x . q \n   . . . z . \n    . . z . . "
PublicObservationString() = ". o . o y \n . . x o . \n  x o x . q \n   . . . z . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◉◯  ◉◉◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 6, 9, 13, 15, 16, 17, 19, 20, 21, 23, 24]
StringLegalActions() = ["p(0,0)", "o(2,0)", "p(0,1)", "o(1,1)", "q(4,1)", "q(3,2)", "p(0,3)", "o(1,3)", "o(2,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(3,4)", "q(4,4)"]

# Apply action "o(1,1)"
action: 6

# State 12
# . o . o y
#  . o x o .
#   x o x . q
#    . . . z .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6"
ObservationString(0) = ". o . o y \n . o x o . \n  x o x . q \n   . . . z . \n    . . z . . "
ObservationString(1) = ". o . o y \n . o x o . \n  x o x . q \n   . . . z . \n    . . z . . "
PublicObservationString() = ". o . o y \n . o x o . \n  x o x . q \n   . . . z . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◉◯◉  ◯◯◯◯◯  ◯◯◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 9, 13, 15, 16, 17, 19, 20, 21, 23, 24]
StringLegalActions() = ["y(0,0)", "y(2,0)", "x(0,1)", "y(4,1)", "z(3,2)", "x(0,3)", "x(1,3)", "z(2,3)", "z(4,3)", "z(0,4)", "z(1,4)", "z(3,4)", "z(4,4)"]

# Apply action "z(2,3)"
action: 17

# State 13
# . o . o y
#  . o z o .
#   x o z . q
#    . . z z .
#     . . z . .
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17"
ObservationString(0) = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . . "
ObservationString(1) = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . . "
PublicObservationString() = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . . "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◉◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 9, 13, 15, 16, 19, 20, 21, 23, 24]
StringLegalActions() = ["p(0,0)", "o(2,0)", "p(0,1)", "q(4,1)", "q(3,2)", "p(0,3)", "o(1,3)", "q(4,3)", "p(0,4)", "o(1,4)", "o(3,4)", "q(4,4)"]

# Apply action "q(4,4)"
action: 24

# State 14
# . o . o y
#  . o z o .
#   x o z . q
#    . . z z .
#     . . z . q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24"
ObservationString(0) = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . q "
ObservationString(1) = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . q "
PublicObservationString() = ". o . o y \n . o z o . \n  x o z . q \n   . . z z . \n    . . z . q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◉  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 9, 13, 15, 16, 19, 20, 21, 23]
StringLegalActions() = ["y(0,0)", "X(2,0)", "x(0,1)", "y(4,1)", "z(3,2)", "x(0,3)", "z(1,3)", "z(4,3)", "z(0,4)", "z(1,4)", "z(3,4)"]

# Apply action "y(4,1)"
action: 9

# State 15
# . o . o y
#  . o z o y
#   x o z . q
#    . . z z .
#     . . z . q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9"
ObservationString(0) = ". o . o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
ObservationString(1) = ". o . o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
PublicObservationString() = ". o . o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 2, 5, 13, 15, 16, 19, 20, 21, 23]
StringLegalActions() = ["p(0,0)", "o(2,0)", "p(0,1)", "q(3,2)", "p(0,3)", "o(1,3)", "q(4,3)", "p(0,4)", "o(1,4)", "q(3,4)"]

# Apply action "o(2,0)"
action: 2

# State 16
# . o o o y
#  . o z o y
#   x o z . q
#    . . z z .
#     . . z . q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2"
ObservationString(0) = ". o o o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
ObservationString(1) = ". o o o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
PublicObservationString() = ". o o o y \n . o z o y \n  x o z . q \n   . . z z . \n    . . z . q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◉  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 5, 13, 15, 16, 19, 20, 21, 23]
StringLegalActions() = ["y(0,0)", "x(0,1)", "X(3,2)", "x(0,3)", "z(1,3)", "z(4,3)", "z(0,4)", "z(1,4)", "z(3,4)"]

# Apply action "z(4,3)"
action: 19

# State 17
# . o o o y
#  . o z o y
#   x o z . q
#    . . z z z
#     . . z . q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19"
ObservationString(0) = ". o o o y \n . o z o y \n  x o z . q \n   . . z z z \n    . . z . q "
ObservationString(1) = ". o o o y \n . o z o y \n  x o z . q \n   . . z z z \n    . . z . q "
PublicObservationString() = ". o o o y \n . o z o y \n  x o z . q \n   . . z z z \n    . . z . q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 5, 13, 15, 16, 20, 21, 23]
StringLegalActions() = ["p(0,0)", "p(0,1)", "q(3,2)", "p(0,3)", "o(1,3)", "p(0,4)", "o(1,4)", "q(3,4)"]

# Apply action "o(1,3)"
action: 16

# State 18
# . o o o y
#  . o z o y
#   x o z . q
#    . o z z z
#     . . z . q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16"
ObservationString(0) = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z . q "
ObservationString(1) = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z . q "
PublicObservationString() = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z . q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◉◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 5, 13, 15, 20, 21, 23]
StringLegalActions() = ["y(0,0)", "x(0,1)", "X(3,2)", "x(0,3)", "z(0,4)", "z(1,4)", "z(3,4)"]

# Apply action "z(3,4)"
action: 23

# State 19
# . o o o y
#  . o z o y
#   x o z . q
#    . o z z z
#     . . z z q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23"
ObservationString(0) = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z z q "
ObservationString(1) = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z z q "
PublicObservationString() = ". o o o y \n . o z o y \n  x o z . q \n   . o z z z \n    . . z z q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◉◯◯◯  ◯◯◯◉◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 5, 13, 15, 20, 21]
StringLegalActions() = ["p(0,0)", "p(0,1)", "q(3,2)", "p(0,3)", "p(0,4)", "o(1,4)"]

# Apply action "q(3,2)"
action: 13

# State 20
# . q q q y
#  . q z q y
#   x q z q q
#    . q z z z
#     . . z z q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13"
ObservationString(0) = ". q q q y \n . q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
ObservationString(1) = ". q q q y \n . q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
PublicObservationString() = ". q q q y \n . q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 5, 15, 20, 21]
StringLegalActions() = ["y(0,0)", "x(0,1)", "x(0,3)", "z(0,4)", "z(1,4)"]

# Apply action "x(0,1)"
action: 5

# State 21
# . q q q y
#  x q z q y
#   x q z q q
#    . q z z z
#     . . z z q
IsTerminal() = False
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5"
ObservationString(0) = ". q q q y \n x q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
ObservationString(1) = ". q q q y \n x q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
PublicObservationString() = ". q q q y \n x q z q y \n  x q z q q \n   . q z z z \n    . . z z q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [0.0, 0.0]
Returns() = [0.0, -0.0]
LegalActions() = [0, 15, 20, 21]
StringLegalActions() = ["O(0,0)", "O(0,3)", "O(0,4)", "q(1,4)"]

# Apply action "O(0,3)"
action: 15

# State 22
# . q q q y
#  x q z q y
#   x q z q q
#    O q z z z
#     . . z z q
IsTerminal() = True
History() = [12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5, 15]
HistoryString() = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5, 15"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5, 15"
InformationStateString(1) = "12, 11, 10, 14, 4, 8, 22, 3, 7, 1, 18, 6, 17, 24, 9, 2, 19, 16, 23, 13, 5, 15"
ObservationString(0) = ". q q q y \n x q z q y \n  x q z q q \n   O q z z z \n    . . z z q "
ObservationString(1) = ". q q q y \n x q z q y \n  x q z q q \n   O q z z z \n    . . z z q "
PublicObservationString() = ". q q q y \n x q z q y \n  x q z q q \n   O q z z z \n    . . z z q "
PrivateObservationString(0) = ""
PrivateObservationString(1) = ""
ObservationTensor(0):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◉◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
ObservationTensor(1):
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◉◉◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◯  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◉  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◉◯◉◉  ◯◯◯◯◯  ◯◯◯◯◯  ◉◯◯◯◯  ◯◯◉◯◯  ◯◯◯◯◯  ◯◯◯◯◯
◉◯◯◯◯  ◯◯◯◯◯  ◯◉◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◯  ◯◯◉◉◉  ◯◯◯◯◯  ◯◯◯◯◯
◯◯◯◯◯  ◯◯◯◯◯  ◯◯◯◯◉  ◯◯◯◯◯  ◉◉◯◯◯  ◯◯◯◯◯  ◯◯◉◉◯  ◯◯◯◯◯  ◯◯◯◯◯
Rewards() = [-1.0, 1.0]
Returns() = [-1.0, 1.0]
