@@ -106,15 +106,16 @@ def try_to_find_safe_tile_to_discard(self, discard_results):
106
106
107
107
# first try to check common safe tiles to discard for all players
108
108
if len (threatening_players ) > 1 :
109
- common_safe_tiles = [x .all_safe_tiles for x in threatening_players ]
110
- common_safe_tiles = list (set .intersection (* map (set , common_safe_tiles )))
111
- common_safe_tiles = [DefenceTile (x , DefenceTile .SAFE ) for x in common_safe_tiles ]
112
-
113
109
against_honitsu = []
114
110
for player in threatening_players :
115
111
if player .chosen_suit :
116
- against_honitsu += self ._mark_safe_tiles_against_honitsu (player )
112
+ against_honitsu += [self ._mark_safe_tiles_against_honitsu (player )]
113
+
114
+ common_safe_tiles = [x .all_safe_tiles for x in threatening_players ]
117
115
common_safe_tiles += against_honitsu
116
+ # let's find a common tiles that will be safe against all threatening players
117
+ common_safe_tiles = list (set .intersection (* map (set , common_safe_tiles )))
118
+ common_safe_tiles = [DefenceTile (x , DefenceTile .SAFE ) for x in common_safe_tiles ]
118
119
119
120
# there is no sense to calculate suji tiles for honitsu players
120
121
not_honitsu_players = [x for x in threatening_players if x .chosen_suit is None ]
@@ -164,13 +165,13 @@ def try_to_find_safe_tile_to_discard(self, discard_results):
164
165
return result
165
166
166
167
# try to find safe tiles against honitsu
167
- against_honitsu = []
168
168
if player .chosen_suit :
169
169
against_honitsu = self ._mark_safe_tiles_against_honitsu (player )
170
+ against_honitsu = [DefenceTile (x , DefenceTile .SAFE ) for x in against_honitsu ]
170
171
171
- result = self ._find_tile_to_discard (against_honitsu , discard_results )
172
- if result :
173
- return result
172
+ result = self ._find_tile_to_discard (against_honitsu , discard_results )
173
+ if result :
174
+ return result
174
175
175
176
# we wasn't able to find safe tile to discard
176
177
return None
@@ -222,5 +223,5 @@ def _mark_safe_tiles_against_honitsu(self, player):
222
223
continue
223
224
224
225
if not player .chosen_suit (tile ) and not is_honor (tile ):
225
- against_honitsu .append (DefenceTile ( tile , DefenceTile . SAFE ) )
226
+ against_honitsu .append (tile )
226
227
return against_honitsu
0 commit comments