game: tiny_bridge_4p

GameType.chance_mode = ChanceMode.EXPLICIT_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.IMPERFECT_INFORMATION
GameType.long_name = "Tiny Bridge (Contested)"
GameType.max_num_players = 4
GameType.min_num_players = 4
GameType.parameter_specification = []
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 = "tiny_bridge_4p"
GameType.utility = Utility.ZERO_SUM

NumDistinctActions() = 9
PolicyTensorShape() = [9]
MaxChanceOutcomes() = 28
GetParameters() = {}
NumPlayers() = 4
MinUtility() = -160.0
MaxUtility() = 160.0
UtilitySum() = 0.0
InformationStateTensorShape() = [84]
InformationStateTensorLayout() = TensorLayout.CHW
InformationStateTensorSize() = 84
ObservationTensorShape() = [30]
ObservationTensorLayout() = TensorLayout.CHW
ObservationTensorSize() = 30
MaxGameLength() = 57
ToString() = "tiny_bridge_4p()"

# State 0
# W:?? N:?? E:?? S:??
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "??"
InformationStateString(1) = "??"
InformationStateString(2) = "??"
InformationStateString(3) = "??"
InformationStateTensor(0): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "??"
ObservationString(1) = "??"
ObservationString(2) = "??"
ObservationString(3) = "??"
ObservationTensor(0): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{0, 0.035714285714}, {1, 0.035714285714}, {3, 0.035714285714}, {6, 0.035714285714}, {10, 0.035714285714}, {15, 0.035714285714}, {21, 0.035714285714}, {2, 0.035714285714}, {4, 0.035714285714}, {7, 0.035714285714}, {11, 0.035714285714}, {16, 0.035714285714}, {22, 0.035714285714}, {5, 0.035714285714}, {8, 0.035714285714}, {12, 0.035714285714}, {17, 0.035714285714}, {23, 0.035714285714}, {9, 0.035714285714}, {13, 0.035714285714}, {18, 0.035714285714}, {24, 0.035714285714}, {14, 0.035714285714}, {19, 0.035714285714}, {25, 0.035714285714}, {20, 0.035714285714}, {26, 0.035714285714}, {27, 0.035714285714}]
LegalActions() = [0, 1, 3, 6, 10, 15, 21, 2, 4, 7, 11, 16, 22, 5, 8, 12, 17, 23, 9, 13, 18, 24, 14, 19, 25, 20, 26, 27]
StringLegalActions() = ["HQHJ", "HKHJ", "HAHJ", "SJHJ", "SQHJ", "SKHJ", "SAHJ", "HKHQ", "HAHQ", "SJHQ", "SQHQ", "SKHQ", "SAHQ", "HAHK", "SJHK", "SQHK", "SKHK", "SAHK", "SJHA", "SQHA", "SKHA", "SAHA", "SQSJ", "SKSJ", "SASJ", "SKSQ", "SASQ", "SASK"]

# Apply action "SAHJ"
action: 21

# State 1
# W:SAHJ N:?? E:?? S:??
IsTerminal() = False
History() = [21]
HistoryString() = "21"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "SAHJ"
InformationStateString(1) = "??"
InformationStateString(2) = "??"
InformationStateString(3) = "??"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ"
ObservationString(1) = "??"
ObservationString(2) = "??"
ObservationString(3) = "??"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{2, 0.066666666667}, {4, 0.066666666667}, {7, 0.066666666667}, {11, 0.066666666667}, {16, 0.066666666667}, {5, 0.066666666667}, {8, 0.066666666667}, {12, 0.066666666667}, {17, 0.066666666667}, {9, 0.066666666667}, {13, 0.066666666667}, {18, 0.066666666667}, {14, 0.066666666667}, {19, 0.066666666667}, {20, 0.066666666667}]
LegalActions() = [2, 4, 7, 11, 16, 5, 8, 12, 17, 9, 13, 18, 14, 19, 20]
StringLegalActions() = ["HKHQ", "HAHQ", "SJHQ", "SQHQ", "SKHQ", "HAHK", "SJHK", "SQHK", "SKHK", "SJHA", "SQHA", "SKHA", "SQSJ", "SKSJ", "SKSQ"]

# Apply action "HAHQ"
action: 4

# State 2
# W:SAHJ N:HAHQ E:?? S:??
IsTerminal() = False
History() = [21, 4]
HistoryString() = "21, 4"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "SAHJ"
InformationStateString(1) = "HAHQ"
InformationStateString(2) = "??"
InformationStateString(3) = "??"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ"
ObservationString(1) = "HAHQ"
ObservationString(2) = "??"
ObservationString(3) = "??"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{8, 0.166666666667}, {12, 0.166666666667}, {17, 0.166666666667}, {14, 0.166666666667}, {19, 0.166666666667}, {20, 0.166666666667}]
LegalActions() = [8, 12, 17, 14, 19, 20]
StringLegalActions() = ["SJHK", "SQHK", "SKHK", "SQSJ", "SKSJ", "SKSQ"]

# Apply action "SKHK"
action: 17

# State 3
# W:SAHJ N:HAHQ E:SKHK S:??
IsTerminal() = False
History() = [21, 4, 17]
HistoryString() = "21, 4, 17"
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = "SAHJ"
InformationStateString(1) = "HAHQ"
InformationStateString(2) = "SKHK"
InformationStateString(3) = "??"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ"
ObservationString(1) = "HAHQ"
ObservationString(2) = "SKHK"
ObservationString(3) = "??"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
ChanceOutcomes() = [{14, 1.000000000000}]
LegalActions() = [14]
StringLegalActions() = ["SQSJ"]

# Apply action "SQSJ"
action: 14

# State 4
# W:SAHJ N:HAHQ E:SKHK S:SQSJ
IsTerminal() = False
History() = [21, 4, 17, 14]
HistoryString() = "21, 4, 17, 14"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "SAHJ"
InformationStateString(1) = "HAHQ"
InformationStateString(2) = "SKHK"
InformationStateString(3) = "SQSJ"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ"
ObservationString(1) = "HAHQ"
ObservationString(2) = "SKHK"
ObservationString(3) = "SQSJ"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 1, 2, 3, 4, 5, 6]
StringLegalActions() = ["Pass", "1H", "1S", "1NT", "2H", "2S", "2NT"]

# Apply action "Pass"
action: 0

# State 5
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass
IsTerminal() = False
History() = [21, 4, 17, 14, 0]
HistoryString() = "21, 4, 17, 14, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "SAHJ Us Pass"
InformationStateString(1) = "HAHQ RH Pass"
InformationStateString(2) = "SKHK Pd Pass"
InformationStateString(3) = "SQSJ LH Pass"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ"
ObservationString(1) = "HAHQ"
ObservationString(2) = "SKHK"
ObservationString(3) = "SQSJ"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯
ObservationTensor(3): ◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 1, 2, 3, 4, 5, 6]
StringLegalActions() = ["Pass", "1H", "1S", "1NT", "2H", "2S", "2NT"]

# Apply action "2H"
action: 4

# State 6
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4]
HistoryString() = "21, 4, 17, 14, 0, 4"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
InformationStateString(0) = "SAHJ Us Pass-2H"
InformationStateString(1) = "HAHQ RH Pass-2H"
InformationStateString(2) = "SKHK Pd Pass-2H"
InformationStateString(3) = "SQSJ LH Pass-2H"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ 2H:LH"
ObservationString(1) = "HAHQ 2H:Us"
ObservationString(2) = "SKHK 2H:RH"
ObservationString(3) = "SQSJ 2H:Pd"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◉◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◯◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◉◯◯
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◉◯◯
ObservationTensor(3): ◯◯◯◯◉◉◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 5, 6, 7]
StringLegalActions() = ["Pass", "2S", "2NT", "Dbl"]

# Apply action "2S"
action: 5

# State 7
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5]
HistoryString() = "21, 4, 17, 14, 0, 4, 5"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 3
InformationStateString(0) = "SAHJ Us Pass-2H-2S"
InformationStateString(1) = "HAHQ RH Pass-2H-2S"
InformationStateString(2) = "SKHK Pd Pass-2H-2S"
InformationStateString(3) = "SQSJ LH Pass-2H-2S"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯
ObservationString(0) = "SAHJ 2S:Pd"
ObservationString(1) = "HAHQ 2S:LH"
ObservationString(2) = "SKHK 2S:Us"
ObservationString(3) = "SQSJ 2S:RH"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◉◯
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◉◯
ObservationTensor(2): ◯◯◉◯◯◯◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯
ObservationTensor(3): ◯◯◯◯◉◉◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◯
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 6, 7]
StringLegalActions() = ["Pass", "2NT", "Dbl"]

# Apply action "2NT"
action: 6

# State 8
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5, 6]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH"
ObservationString(1) = "HAHQ 2NT:Pd"
ObservationString(2) = "SKHK 2NT:LH"
ObservationString(3) = "SQSJ 2NT:Us"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 7]
StringLegalActions() = ["Pass", "Dbl"]

# Apply action "Dbl"
action: 7

# State 9
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT-Dbl
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5, 6, 7]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6, 7"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT-Dbl"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT-Dbl"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT-Dbl"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT-Dbl"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◯◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◯◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◯◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH Dbl:Us"
ObservationString(1) = "HAHQ 2NT:Pd Dbl:RH"
ObservationString(2) = "SKHK 2NT:LH Dbl:Pd"
ObservationString(3) = "SQSJ 2NT:Us Dbl:LH"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0, 8]
StringLegalActions() = ["Pass", "RDbl"]

# Apply action "RDbl"
action: 8

# State 10
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT-Dbl-RDbl
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5, 6, 7, 8]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6, 7, 8"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 2
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT-Dbl-RDbl"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT-Dbl-RDbl"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT-Dbl-RDbl"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT-Dbl-RDbl"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◉◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◉◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH Dbl:Us RDbl:LH"
ObservationString(1) = "HAHQ 2NT:Pd Dbl:RH RDbl:Us"
ObservationString(2) = "SKHK 2NT:LH Dbl:Pd RDbl:RH"
ObservationString(3) = "SQSJ 2NT:Us Dbl:LH RDbl:Pd"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0]
StringLegalActions() = ["Pass"]

# Apply action "Pass"
action: 0

# State 11
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT-Dbl-RDbl-Pass
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 3
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT-Dbl-RDbl-Pass"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT-Dbl-RDbl-Pass"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT-Dbl-RDbl-Pass"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT-Dbl-RDbl-Pass"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◉◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◉◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH Dbl:Us RDbl:LH"
ObservationString(1) = "HAHQ 2NT:Pd Dbl:RH RDbl:Us"
ObservationString(2) = "SKHK 2NT:LH Dbl:Pd RDbl:RH"
ObservationString(3) = "SQSJ 2NT:Us Dbl:LH RDbl:Pd"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0]
StringLegalActions() = ["Pass"]

# Apply action "Pass"
action: 0

# State 12
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass
IsTerminal() = False
History() = [21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0, 0]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◉◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◉◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH Dbl:Us RDbl:LH"
ObservationString(1) = "HAHQ 2NT:Pd Dbl:RH RDbl:Us"
ObservationString(2) = "SKHK 2NT:LH Dbl:Pd RDbl:RH"
ObservationString(3) = "SQSJ 2NT:Us Dbl:LH RDbl:Pd"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [0.0, 0.0, 0.0, 0.0]
Returns() = [0.0, 0.0, 0.0, 0.0]
LegalActions() = [0]
StringLegalActions() = ["Pass"]

# Apply action "Pass"
action: 0

# State 13
# W:SAHJ N:HAHQ E:SKHK S:SQSJ Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass-Pass
IsTerminal() = True
History() = [21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0, 0, 0]
HistoryString() = "21, 4, 17, 14, 0, 4, 5, 6, 7, 8, 0, 0, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "SAHJ Us Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass-Pass"
InformationStateString(1) = "HAHQ RH Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass-Pass"
InformationStateString(2) = "SKHK Pd Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass-Pass"
InformationStateString(3) = "SQSJ LH Pass-2H-2S-2NT-Dbl-RDbl-Pass-Pass-Pass"
InformationStateTensor(0): ◉◯◯◯◯◯◯◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◯◯◯◯◉
InformationStateTensor(1): ◯◉◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◉◯◯◯◯◯◉◯
InformationStateTensor(2): ◯◯◉◯◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉◯◯◯◯◉◯◉◯◯
InformationStateTensor(3): ◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◉◯◉◯◯◯◯◉◯◉◯◯◯
ObservationString(0) = "SAHJ 2NT:RH Dbl:Us RDbl:LH"
ObservationString(1) = "HAHQ 2NT:Pd Dbl:RH RDbl:Us"
ObservationString(2) = "SKHK 2NT:LH Dbl:Pd RDbl:RH"
ObservationString(3) = "SQSJ 2NT:Us Dbl:LH RDbl:Pd"
ObservationTensor(0): ◉◯◯◯◯◯◯◉◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◉
ObservationTensor(1): ◯◉◯◉◯◯◯◯◯◯◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◯◯◯◉
ObservationTensor(2): ◯◯◉◯◯◯◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◉
ObservationTensor(3): ◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◉
Rewards() = [80.0, -80.0, 80.0, -80.0]
Returns() = [80.0, -80.0, 80.0, -80.0]
