Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from game.ai.defence.yaku_analyzer.yaku_analyzer import YakuAnalyzer 

2 

3 

4class YakuhaiAnalyzer(YakuAnalyzer): 

5 id = "yakuhai" 

6 

7 def __init__(self, enemy): 

8 self.enemy = enemy 

9 

10 def serialize(self): 

11 return {"id": self.id} 

12 

13 def is_yaku_active(self): 

14 return len(self._get_suitable_melds()) > 0 

15 

16 def melds_han(self): 

17 han = 0 

18 suitable_melds = self._get_suitable_melds() 

19 for x in suitable_melds: 

20 tile_34 = x.tiles[0] // 4 

21 # we need to do that to support double winds yakuhais 

22 han += len([x for x in self.enemy.valued_honors if x == tile_34]) 

23 return han 

24 

25 def _get_suitable_melds(self): 

26 suitable_melds = [] 

27 for x in self.enemy.melds: 

28 tile_34 = x.tiles[0] // 4 

29 if tile_34 in self.enemy.valued_honors: 

30 suitable_melds.append(x) 

31 return suitable_melds