game: leduc_poker(players=3)

GameType.chance_mode = ChanceMode.EXPLICIT_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.IMPERFECT_INFORMATION
GameType.long_name = "Leduc Poker"
GameType.max_num_players = 10
GameType.min_num_players = 2
GameType.parameter_specification = ["action_mapping", "players", "suit_isomorphism"]
GameType.provides_information_state_string = True
GameType.provides_information_state_tensor = True
GameType.provides_observation_string = True
GameType.provides_observation_tensor = True
GameType.provides_factored_observation_string = False
GameType.reward_model = RewardModel.TERMINAL
GameType.short_name = "leduc_poker"
GameType.utility = Utility.ZERO_SUM

NumDistinctActions() = 3
PolicyTensorShape() = [3]
MaxChanceOutcomes() = 8
GetParameters() = {action_mapping=False,players=3,suit_isomorphism=False}
NumPlayers() = 3
MinUtility() = -13.0
MaxUtility() = 26.0
UtilitySum() = 0.0
InformationStateTensorShape() = player: [3], private_card: [8], community_card: [8], betting: [2, 7, 2]
InformationStateTensorLayout() = TensorLayout.CHW
InformationStateTensorSize() = 47
ObservationTensorShape() = player: [3], private_card: [8], community_card: [8], pot_contribution: [3]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 22
MaxGameLength() = 14
ToString() = "leduc_poker(players=3)"

# State 0
# Round: 1
# Player: -1
# Pot: 3
# Money (p1 p2 ...): 99 99 99
# Cards (public p1 p2 ...): -10000 -10000 -10000 -10000
# Round 1 sequence:
# Round 2 sequence:
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "[Observer: 0][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(1) = "[Observer: 1][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PublicObservationString() = "[Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PrivateObservationString(0) = "[Observer: 0][Private: -10000]"
PrivateObservationString(1) = "[Observer: 1][Private: -10000]"
PrivateObservationString(2) = "[Observer: 2][Private: -10000]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution: ◉◉◉
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution: ◉◉◉
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution: ◉◉◉
ChanceOutcomes() = [{0, 0.125000000000}, {1, 0.125000000000}, {2, 0.125000000000}, {3, 0.125000000000}, {4, 0.125000000000}, {5, 0.125000000000}, {6, 0.125000000000}, {7, 0.125000000000}]
LegalActions() = [0, 1, 2, 3, 4, 5, 6, 7]
StringLegalActions() = ["Chance outcome:0", "Chance outcome:1", "Chance outcome:2", "Chance outcome:3", "Chance outcome:4", "Chance outcome:5", "Chance outcome:6", "Chance outcome:7"]

# Apply action "Chance outcome:4"
action: 4

# State 1
# Round: 1
# Player: -1
# Pot: 3
# Money (p1 p2 ...): 99 99 99
# Cards (public p1 p2 ...): -10000 4 -10000 -10000
# Round 1 sequence:
# Round 2 sequence:
IsTerminal() = False
History() = [4]
HistoryString() = "4"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(1) = "[Observer: 1][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PublicObservationString() = "[Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: -10000]"
PrivateObservationString(2) = "[Observer: 2][Private: -10000]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution: ◉◉◉
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution: ◉◉◉
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution: ◉◉◉
ChanceOutcomes() = [{0, 0.142857142857}, {1, 0.142857142857}, {2, 0.142857142857}, {3, 0.142857142857}, {5, 0.142857142857}, {6, 0.142857142857}, {7, 0.142857142857}]
LegalActions() = [0, 1, 2, 3, 5, 6, 7]
StringLegalActions() = ["Chance outcome:0", "Chance outcome:1", "Chance outcome:2", "Chance outcome:3", "Chance outcome:5", "Chance outcome:6", "Chance outcome:7"]

# Apply action "Chance outcome:2"
action: 2

# State 2
# Round: 1
# Player: -1
# Pot: 3
# Money (p1 p2 ...): 99 99 99
# Cards (public p1 p2 ...): -10000 4 2 -10000
# Round 1 sequence:
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2]
HistoryString() = "4, 2"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(2) = "[Observer: 2][Private: -10000][Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PublicObservationString() = "[Round 1][Player: -1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: -10000]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution: ◉◉◉
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution: ◉◉◉
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution: ◉◉◉
ChanceOutcomes() = [{0, 0.166666666667}, {1, 0.166666666667}, {3, 0.166666666667}, {5, 0.166666666667}, {6, 0.166666666667}, {7, 0.166666666667}]
LegalActions() = [0, 1, 3, 5, 6, 7]
StringLegalActions() = ["Chance outcome:0", "Chance outcome:1", "Chance outcome:3", "Chance outcome:5", "Chance outcome:6", "Chance outcome:7"]

# Apply action "Chance outcome:3"
action: 3

# State 3
# Round: 1
# Player: 0
# Pot: 3
# Money (p1 p2 ...): 99 99 99
# Cards (public p1 p2 ...): -10000 4 2 3
# Round 1 sequence:
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3]
HistoryString() = "4, 2, 3"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Round1: ][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 1][Player: 0][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PublicObservationString() = "[Round 1][Player: 0][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution: ◉◉◉
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution: ◉◉◉
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution: ◉◉◉
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [1, 2]
StringLegalActions() = ["Call", "Raise"]

# Apply action "Call"
action: 1

# State 4
# Round: 1
# Player: 1
# Pot: 3
# Money (p1 p2 ...): 99 99 99
# Cards (public p1 p2 ...): -10000 4 2 3
# Round 1 sequence: Call
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3, 1]
HistoryString() = "4, 2, 3, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Round1: 1][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Round1: 1][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Round1: 1][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 1][Player: 1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PublicObservationString() = "[Round 1][Player: 1][Pot: 3][Money: 99 99 99][Ante: 1 1 1]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution: ◉◉◉
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution: ◉◉◉
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution: ◉◉◉
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [1, 2]
StringLegalActions() = ["Call", "Raise"]

# Apply action "Raise"
action: 2

# State 5
# Round: 1
# Player: 2
# Pot: 5
# Money (p1 p2 ...): 99 97 99
# Cards (public p1 p2 ...): -10000 4 2 3
# Round 1 sequence: Call, Raise
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3, 1, 2]
HistoryString() = "4, 2, 3, 1, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Round1: 1 2][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Round1: 1 2][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Round1: 1 2][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◯
◯◉  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◯
◯◉  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◯
◯◉  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Ante: 1 3 1]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Ante: 1 3 1]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 1][Player: 2][Pot: 5][Money: 99 97 99][Ante: 1 3 1]"
PublicObservationString() = "[Round 1][Player: 2][Pot: 5][Money: 99 97 99][Ante: 1 3 1]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 3.0, 1.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 3.0, 1.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 3.0, 1.0]
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["Fold", "Call", "Raise"]

# Apply action "Call"
action: 1

# State 6
# Round: 1
# Player: 0
# Pot: 7
# Money (p1 p2 ...): 99 97 97
# Cards (public p1 p2 ...): -10000 4 2 3
# Round 1 sequence: Call, Raise, Call
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3, 1, 2, 1]
HistoryString() = "4, 2, 3, 1, 2, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "[Observer: 0][Private: 4][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Round1: 1 2 1][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Round1: 1 2 1][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Round1: 1 2 1][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 1][Player: 0][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
PublicObservationString() = "[Round 1][Player: 0][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 3.0, 3.0]
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["Fold", "Call", "Raise"]

# Apply action "Fold"
action: 0

# State 7
# Round: 2
# Player: -1
# Pot: 7
# Money (p1 p2 ...): 99 97 97
# Cards (public p1 p2 ...): -10000 4 2 3
# Round 1 sequence: Call, Raise, Call, Fold
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3, 1, 2, 1, 0]
HistoryString() = "4, 2, 3, 1, 2, 1, 0"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "[Observer: 0][Private: 4][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Round1: 1 2 1 0][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Round1: 1 2 1 0][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Round1: 1 2 1 0][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◯◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 2][Player: -1][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
PublicObservationString() = "[Round 2][Player: -1][Pot: 7][Money: 99 97 97][Ante: 1 3 3]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◯◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 3.0, 3.0]
ChanceOutcomes() = [{0, 0.200000000000}, {1, 0.200000000000}, {5, 0.200000000000}, {6, 0.200000000000}, {7, 0.200000000000}]
LegalActions() = [0, 1, 5, 6, 7]
StringLegalActions() = ["Chance outcome:0", "Chance outcome:1", "Chance outcome:5", "Chance outcome:6", "Chance outcome:7"]

# Apply action "Chance outcome:1"
action: 1

# State 8
# Round: 2
# Player: 1
# Pot: 7
# Money (p1 p2 ...): 99 97 97
# Cards (public p1 p2 ...): 1 4 2 3
# Round 1 sequence: Call, Raise, Call, Fold
# Round 2 sequence:
IsTerminal() = False
History() = [4, 2, 3, 1, 2, 1, 0, 1]
HistoryString() = "4, 2, 3, 1, 2, 1, 0, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "[Observer: 0][Private: 4][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Round1: 1 2 1 0][Round2: ]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Round1: 1 2 1 0][Round2: ]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Round1: 1 2 1 0][Round2: ]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◯
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Ante: 1 3 3]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Ante: 1 3 3]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Ante: 1 3 3]"
PublicObservationString() = "[Round 2][Player: 1][Pot: 7][Money: 99 97 97][Public: 1][Ante: 1 3 3]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 3.0, 3.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 3.0, 3.0]
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [1, 2]
StringLegalActions() = ["Call", "Raise"]

# Apply action "Raise"
action: 2

# State 9
# Round: 2
# Player: 2
# Pot: 11
# Money (p1 p2 ...): 99 93 97
# Cards (public p1 p2 ...): 1 4 2 3
# Round 1 sequence: Call, Raise, Call, Fold
# Round 2 sequence: Raise
IsTerminal() = False
History() = [4, 2, 3, 1, 2, 1, 0, 1, 2]
HistoryString() = "4, 2, 3, 1, 2, 1, 0, 1, 2"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
InformationStateString(0) = "[Observer: 0][Private: 4][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Round1: 1 2 1 0][Round2: 2]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Round1: 1 2 1 0][Round2: 2]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Round1: 1 2 1 0][Round2: 2]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◉
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◉
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◉
◯◉  ◯◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Ante: 1 7 3]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Ante: 1 7 3]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Ante: 1 7 3]"
PublicObservationString() = "[Round 2][Player: 2][Pot: 11][Money: 99 93 97][Public: 1][Ante: 1 7 3]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 7.0, 3.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 7.0, 3.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 7.0, 3.0]
Rewards() = [0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0]
LegalActions() = [0, 1, 2]
StringLegalActions() = ["Fold", "Call", "Raise"]

# Apply action "Call"
action: 1

# State 10
# Round: 2
# Player: 2
# Pot: 0
# Money (p1 p2 ...): 99 100.5 100.5
# Cards (public p1 p2 ...): 1 4 2 3
# Round 1 sequence: Call, Raise, Call, Fold
# Round 2 sequence: Raise, Call
IsTerminal() = True
History() = [4, 2, 3, 1, 2, 1, 0, 1, 2, 1]
HistoryString() = "4, 2, 3, 1, 2, 1, 0, 1, 2, 1"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "[Observer: 0][Private: 4][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Round1: 1 2 1 0][Round2: 2 1]"
InformationStateString(1) = "[Observer: 1][Private: 2][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Round1: 1 2 1 0][Round2: 2 1]"
InformationStateString(2) = "[Observer: 2][Private: 3][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Round1: 1 2 1 0][Round2: 2 1]"
InformationStateTensor(0).player: ◉◯◯
InformationStateTensor(0).private_card: ◯◯◯◯◉◯◯◯
InformationStateTensor(0).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(0).betting:
◉◯  ◯◉
◯◉  ◉◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(1).player: ◯◉◯
InformationStateTensor(1).private_card: ◯◯◉◯◯◯◯◯
InformationStateTensor(1).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(1).betting:
◉◯  ◯◉
◯◉  ◉◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
InformationStateTensor(2).player: ◯◯◉
InformationStateTensor(2).private_card: ◯◯◯◉◯◯◯◯
InformationStateTensor(2).community_card: ◯◉◯◯◯◯◯◯
InformationStateTensor(2).betting:
◉◯  ◯◉
◯◉  ◉◯
◉◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
◯◯  ◯◯
ObservationString(0) = "[Observer: 0][Private: 4][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Ante: 1 7 7]"
ObservationString(1) = "[Observer: 1][Private: 2][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Ante: 1 7 7]"
ObservationString(2) = "[Observer: 2][Private: 3][Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Ante: 1 7 7]"
PublicObservationString() = "[Round 2][Player: 2][Pot: 0][Money: 99 100.5 100.5][Public: 1][Ante: 1 7 7]"
PrivateObservationString(0) = "[Observer: 0][Private: 4]"
PrivateObservationString(1) = "[Observer: 1][Private: 2]"
PrivateObservationString(2) = "[Observer: 2][Private: 3]"
ObservationTensor(0).player: ◉◯◯
ObservationTensor(0).private_card: ◯◯◯◯◉◯◯◯
ObservationTensor(0).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(0).pot_contribution = [1.0, 7.0, 7.0]
ObservationTensor(1).player: ◯◉◯
ObservationTensor(1).private_card: ◯◯◉◯◯◯◯◯
ObservationTensor(1).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(1).pot_contribution = [1.0, 7.0, 7.0]
ObservationTensor(2).player: ◯◯◉
ObservationTensor(2).private_card: ◯◯◯◉◯◯◯◯
ObservationTensor(2).community_card: ◯◉◯◯◯◯◯◯
ObservationTensor(2).pot_contribution = [1.0, 7.0, 7.0]
Rewards() = [-1.0, 0.5, 0.5]
Returns() = [-1.0, 0.5, 0.5]
