game: bridge_uncontested_bidding(relative_scoring=True,num_redeals=1,rng_seed=-1)

GameType.chance_mode = ChanceMode.SAMPLED_STOCHASTIC
GameType.dynamics = Dynamics.SEQUENTIAL
GameType.information = Information.IMPERFECT_INFORMATION
GameType.long_name = "Bridge: Uncontested Bidding"
GameType.max_num_players = 2
GameType.min_num_players = 2
GameType.parameter_specification = ["num_redeals", "relative_scoring", "rng_seed", "subgame"]
GameType.provides_information_state_string = True
GameType.provides_information_state_tensor = True
GameType.provides_observation_string = False
GameType.provides_observation_tensor = False
GameType.provides_factored_observation_string = False
GameType.reward_model = RewardModel.TERMINAL
GameType.short_name = "bridge_uncontested_bidding"
GameType.utility = Utility.IDENTICAL

NumDistinctActions() = 36
PolicyTensorShape() = [36]
MaxChanceOutcomes() = 1
GetParameters() = {num_redeals=1,relative_scoring=True,rng_seed=-1,subgame=}
NumPlayers() = 2
MinUtility() = -2170.0
MaxUtility() = 0.0
UtilitySum() = None
InformationStateTensorShape() = [126]
InformationStateTensorLayout() = TensorLayout.CHW
InformationStateTensorSize() = 126
MaxGameLength() = 36
ToString() = "bridge_uncontested_bidding(num_redeals=1,relative_scoring=True,rng_seed=-1)"

# State 0
IsTerminal() = False
History() = []
HistoryString() = ""
IsChanceNode() = True
IsSimultaneousNode() = False
CurrentPlayer() = -1
InformationStateString(0) = ""
InformationStateString(1) = ""
InformationStateTensor(0): ◉◉◉◉◉◉◉◉◉◉◉◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◯◯◯◯◯◯◯◯◯◯◉◉◉◉◉◉◉◉◉◉◉◉◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉
SerializeState() = ""
ChanceOutcomes() = [{0, 1.000000000000}]
LegalActions() = [0]
StringLegalActions() = ["Deal"]

# Apply action "Deal"
action: 0

# State 1
# T8643.KQ983.K2.A K972.AJT6.64.853
IsTerminal() = False
History() = [0]
HistoryString() = "0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "T8643.KQ983.K2.A "
InformationStateString(1) = "K972.AJT6.64.853 "
InformationStateTensor(0): ◯◉◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◉◯◯◉◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◉◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉
SerializeState() = "T8643.KQ983.K2.A K972.AJT6.64.853 "
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, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
StringLegalActions() = ["Pass", "1C", "1D", "1H", "1S", "1N", "2C", "2D", "2H", "2S", "2N", "3C", "3D", "3H", "3S", "3N", "4C", "4D", "4H", "4S", "4N", "5C", "5D", "5H", "5S", "5N", "6C", "6D", "6H", "6S", "6N", "7C", "7D", "7H", "7S", "7N"]

# Apply action "4C"
action: 16

# State 2
# T8643.KQ983.K2.A K972.AJT6.64.853 4C
IsTerminal() = False
History() = [0, 16]
HistoryString() = "0, 16"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "T8643.KQ983.K2.A 4C"
InformationStateString(1) = "K972.AJT6.64.853 4C"
InformationStateTensor(0): ◯◉◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◉◯◯◉◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◉◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉
SerializeState() = "T8643.KQ983.K2.A K972.AJT6.64.853 4C"
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
StringLegalActions() = ["Pass", "4D", "4H", "4S", "4N", "5C", "5D", "5H", "5S", "5N", "6C", "6D", "6H", "6S", "6N", "7C", "7D", "7H", "7S", "7N"]

# Apply action "7H"
action: 33

# State 3
# T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H
IsTerminal() = False
History() = [0, 16, 33]
HistoryString() = "0, 16, 33"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 0
InformationStateString(0) = "T8643.KQ983.K2.A 4C-7H"
InformationStateString(1) = "K972.AJT6.64.853 4C-7H"
InformationStateTensor(0): ◯◉◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◉◯◯◉◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◉◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◉
SerializeState() = "T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H"
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [0, 34, 35]
StringLegalActions() = ["Pass", "7S", "7N"]

# Apply action "7S"
action: 34

# State 4
# T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H-7S
IsTerminal() = False
History() = [0, 16, 33, 34]
HistoryString() = "0, 16, 33, 34"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = 1
InformationStateString(0) = "T8643.KQ983.K2.A 4C-7H-7S"
InformationStateString(1) = "K972.AJT6.64.853 4C-7H-7S"
InformationStateTensor(0): ◯◉◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◉◯◯◉◉◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◉◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◉◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◉◯◯◯◯◉
SerializeState() = "T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H-7S"
Rewards() = [0.0, 0.0]
Returns() = [0.0, 0.0]
LegalActions() = [0, 35]
StringLegalActions() = ["Pass", "7N"]

# Apply action "Pass"
action: 0

# State 5
# T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H-7S-Pass Score:-150 Passed Out:0 1C N:-150 1C E:-150 1D N:-150 1D E:-150 1H N:170 1H E:170 1S N:170 1S E:170 1N N:-50 1N E:-50 3N N:-150 3N E:-150 4H N:420 4H E:420 4S N:420 4S E:420 5C N:-350 5C E:-350 5D N:-350 5D E:-350 6C N:-400 6C E:-400 6D N:-400 6D E:-400 6H N:-100 6H E:-100 6S N:-100 6S E:-100 6N N:-300 6N E:-300 7C N:-450 7C E:-450 7D N:-450 7D E:-450 7H N:-150 7H E:-150 7S N:-150 7S E:-150 7N N:-350 7N E:-350
IsTerminal() = True
History() = [0, 16, 33, 34, 0]
HistoryString() = "0, 16, 33, 34, 0"
IsChanceNode() = False
IsSimultaneousNode() = False
CurrentPlayer() = -4
InformationStateString(0) = "T8643.KQ983.K2.A 4C-7H-7S-Pass"
InformationStateString(1) = "K972.AJT6.64.853 4C-7H-7S-Pass"
InformationStateTensor(0): ◯◉◯◯◯◯◉◉◯◯◯◉◯◯◯◯◯◯◯◉◯◯◯◯◯◯◉◉◯◯◉◯◯◯◯◉◯◯◯◯◯◯◉◯◯◉◉◯◉◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◉◯◯◯◉◯
InformationStateTensor(1): ◯◯◯◉◉◯◯◯◯◉◯◯◉◯◯◯◯◉◉◯◯◯◯◉◉◯◯◯◯◯◯◉◯◯◉◯◯◯◉◯◯◯◯◯◯◯◯◉◯◯◉◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◯◉◉◯◯◯◯◉
SerializeState() = "T8643.KQ983.K2.A K972.AJT6.64.853 4C-7H-7S-Pass Score:-150 Passed Out:0 1C N:-150 1C E:-150 1D N:-150 1D E:-150 1H N:170 1H E:170 1S N:170 1S E:170 1N N:-50 1N E:-50 3N N:-150 3N E:-150 4H N:420 4H E:420 4S N:420 4S E:420 5C N:-350 5C E:-350 5D N:-350 5D E:-350 6C N:-400 6C E:-400 6D N:-400 6D E:-400 6H N:-100 6H E:-100 6S N:-100 6S E:-100 6N N:-300 6N E:-300 7C N:-450 7C E:-450 7D N:-450 7D E:-450 7H N:-150 7H E:-150 7S N:-150 7S E:-150 7N N:-350 7N E:-350"
Rewards() = [-150.0, -570.0]
Returns() = [-150.0, -570.0]
