Skip to content

Commit 931e39a

Browse files
committed
Merge pull request #1172 from zizhang-qiu:fix_bridge_observation_tensor
PiperOrigin-RevId: 606230032 Change-Id: Ia765dbfd3b84d80fec43d5896b3a125b8e8fb42e
2 parents 468a004 + f25125e commit 931e39a

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

open_spiel/games/bridge/bridge.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,8 @@ void BridgeState::WriteObservationTensor(Player player,
314314
auto ptr = values.begin();
315315
if (num_cards_played_ > 0) {
316316
// Observation for play phase
317-
if (phase_ == Phase::kPlay) ptr[2] = 1;
317+
const bool defending = (partnership != Partnership(contract_.declarer));
318+
if (phase_ == Phase::kPlay) ptr[2 + defending] = 1;
318319
ptr += kNumObservationTypes;
319320

320321
// Contract

open_spiel/integration_tests/playthroughs/bridge(use_double_dummy_result=false).txt

+10-10
Original file line numberDiff line numberDiff line change
@@ -738,9 +738,9 @@ ObservationString(1) = "Vul: None\nS 9\nH QT863\nD A75\nC 982\n\nWest North Eas
738738
ObservationString(2) = "Vul: None\nS KQJT2\nH none\nD 82\nC Q7643\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 \n\nDeclarer tricks: 0"
739739
ObservationString(3) = "Vul: None\nS 76\nH J75\nD KQT9643\nC K\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 \n\nDeclarer tricks: 0"
740740
ObservationTensor(0): binvec(571, 0x104148804e4004a3002d620221004644000000000000000000000000080800000000000000000000000000000000000000000000000000000000000000000000000000002001000)
741-
ObservationTensor(1): binvec(571, 0x104141a081092a480811620221004644000000000000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000)
741+
ObservationTensor(1): binvec(571, 0x84141a081092a480811620221004644000000000000808000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000)
742742
ObservationTensor(2): binvec(571, 0x10414296202210046441620221004644080000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000002001000)
743-
ObservationTensor(3): binvec(571, 0x104144811094c1109301620221004644000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000002001000)
743+
ObservationTensor(3): binvec(571, 0x84144811094c1109301620221004644000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000002001000)
744744
Rewards() = [0, 0, 0, 0]
745745
Returns() = [0, 0, 0, 0]
746746
LegalActions() = [14, 22, 38]
@@ -831,9 +831,9 @@ ObservationString(1) = "Vul: None\nS none\nH QT86\nD A75\nC 982\n\nWest North E
831831
ObservationString(2) = "Vul: None\nS QJ2\nH none\nD 82\nC Q764\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK \n\nDeclarer tricks: 3"
832832
ObservationString(3) = "Vul: None\nS none\nH J7\nD KQT9643\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK \n\nDeclarer tricks: 3"
833833
ObservationTensor(0): binvec(571, 0x104148800e0004a30025420221000640000000000000000000000000000200000000000000000000002000004000000000080000000000000000000000400000400000000401000)
834-
ObservationTensor(1): binvec(571, 0x104141a001092a080811420221000640000000000000002000000000000000000000020000000000000000800000000000000000000004000004000000000004000000000401000)
834+
ObservationTensor(1): binvec(571, 0x84141a001092a080811420221000640000000000000002000000000000000000000020000000000000000800000000000000000000004000004000000000004000000000401000)
835835
ObservationTensor(2): binvec(571, 0x10414294202210006401420221000640020000000000000000000000200000000000000000000000000000000000000040000040000000000040000000000800000000000401000)
836-
ObservationTensor(3): binvec(571, 0x10414481101081109101420221000640000000000002000000000000000000000000000020000000000000000400000000000400000000008000000000000000000000040401000)
836+
ObservationTensor(3): binvec(571, 0x8414481101081109101420221000640000000000002000000000000000000000000000020000000000000000400000000000400000000008000000000000000000000040401000)
837837
Rewards() = [0, 0, 0, 0]
838838
Returns() = [0, 0, 0, 0]
839839
LegalActions() = [12, 32, 36, 48]
@@ -940,9 +940,9 @@ ObservationString(1) = "Vul: None\nS none\nH QT8\nD A75\nC none\n\nWest North E
940940
ObservationString(2) = "Vul: None\nS QJ2\nH none\nD 82\nC 7\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 \n\nDeclarer tricks: 7"
941941
ObservationString(3) = "Vul: None\nS none\nH J7\nD KQT9\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 \n\nDeclarer tricks: 7"
942942
ObservationTensor(0): binvec(571, 0x10414880040004810005400021000440000800000000000000000000000000000000000000000000000000000000200000000080000000000020000000000001000000000041000)
943-
ObservationTensor(1): binvec(571, 0x10414180010108080811400021000440000000000000000000000000000000000000000000800000000000000800000000000200000000000010000000000000000200000041000)
943+
ObservationTensor(1): binvec(571, 0x8414180010108080811400021000440000000000000000000000000000000000000000000800000000000000800000000000200000000000010000000000000000200000041000)
944944
ObservationTensor(2): binvec(571, 0x10414294000210004401400021000440000000000000000000000000000008000000000000000000000000002000000000000100000000000000002000000000800000000041000)
945-
ObservationTensor(3): binvec(571, 0x10414480000081109101400021000440000000000000000080000000000000000000000000000000000000001000000000000000020000000008000000000002000000000041000)
945+
ObservationTensor(3): binvec(571, 0x8414480000081109101400021000440000000000000000080000000000000000000000000000000000000001000000000000000020000000008000000000002000000000041000)
946946
Rewards() = [0, 0, 0, 0]
947947
Returns() = [0, 0, 0, 0]
948948
LegalActions() = [26, 34, 42]
@@ -1006,9 +1006,9 @@ ObservationString(1) = "Vul: None\nS none\nH QT\nD A75\nC none\n\nWest North Ea
10061006
ObservationString(2) = "Vul: None\nS QJ\nH none\nD 82\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 H8 S2 H7 \n C7 \n\nDeclarer tricks: 8"
10071007
ObservationString(3) = "Vul: None\nS none\nH J\nD KQT9\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 H8 S2 H7 \n C7 \n\nDeclarer tricks: 8"
10081008
ObservationTensor(0): binvec(571, 0x10414880040004810005000001000440000000000000000000000000000000020000000000000000000000080000000000000000800000040000000000000000080000000021000)
1009-
ObservationTensor(1): binvec(571, 0x10414180010100080811000001000440000000000000000000200000000000000000000000000000000000000008000000400000000000000000800000000080000000000021000)
1009+
ObservationTensor(1): binvec(571, 0x8414180010100080811000001000440000000000000000000200000000000000000000000000000000000000008000000400000000000000000800000000080000000000021000)
10101010
ObservationTensor(2): binvec(571, 0x10414290000010004401000001000440000002000000000000000000000000000000000000000000000004000000000000000008000000000800000000000000008000000021000)
1011-
ObservationTensor(3): binvec(571, 0x10414480000001109101000001000440000000000000000000000000000000000000000000002000000000000080000000008000000000000000080000004000000000000021000)
1011+
ObservationTensor(3): binvec(571, 0x8414480000001109101000001000440000000000000000000000000000000000000000000002000000000000080000000008000000000000000080000004000000000000021000)
10121012
Rewards() = [0, 0, 0, 0]
10131013
Returns() = [0, 0, 0, 0]
10141014
LegalActions() = [29, 33, 38, 41, 45]
@@ -1060,9 +1060,9 @@ ObservationString(1) = "Vul: None\nS none\nH QT\nD A75\nC none\n\nWest North Ea
10601060
ObservationString(2) = "Vul: None\nS QJ\nH none\nD 82\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 H8 S2 H7 \n C7 D9 \n\nDeclarer tricks: 8"
10611061
ObservationString(3) = "Vul: None\nS none\nH J\nD KQT\nC none\n\nWest North East South\n 1S 3H 4S \n5H Dbl Pass 5S \nPass Pass Pass \n\nN E S W N E S\n HK H2 H5 HA \nS3 S9 ST S7 \n SK S6 S5 H3 \n C3 CK CA C2 \nC5 C8 CQ D3 \n C4 D4 CJ C9 \nCT H6 C6 D6 \nH4 H8 S2 H7 \n C7 D9 \n\nDeclarer tricks: 8"
10621062
ObservationTensor(0): binvec(571, 0x10414880040004810005000001000440000000000000000000000000000000020000000000000010000000080000000000000000800000040000000000000000080000000021000)
1063-
ObservationTensor(1): binvec(571, 0x10414180010100080811000001000440000000000000000000200000000000000100000000000000000000000008000000400000000000000000800000000080000000000021000)
1063+
ObservationTensor(1): binvec(571, 0x8414180010100080811000001000440000000000000000000200000000000000100000000000000000000000008000000400000000000000000800000000080000000000021000)
10641064
ObservationTensor(2): binvec(571, 0x10414290000010004401000001000440000002000000000000001000000000000000000000000000000004000000000000000008000000000800000000000000008000000021000)
1065-
ObservationTensor(3): binvec(571, 0x10414480000000109101000001000440000000010000000000000000000000000000000000002000000000000080000000008000000000000000080000004000000000000021000)
1065+
ObservationTensor(3): binvec(571, 0x8414480000000109101000001000440000000010000000000000000000000000000000000002000000000000080000000008000000000000000080000004000000000000021000)
10661066
Rewards() = [0, 0, 0, 0]
10671067
Returns() = [0, 0, 0, 0]
10681068
LegalActions() = [11, 27, 30, 37, 51]

0 commit comments

Comments
 (0)