在
上篇中分析了听牌可能有关字牌的情形, 具体包括字牌中有一个单张, 而剩下的数牌全能构成面子的单骑醒, 或者字牌中有个对子, 而剩下某数牌含有一个对子的双碰型或一个搭子的边/嵌张听牌. 这篇要讨论字牌全是刻子时的类似情况. 之所以说类似是由于此时数牌只可能有以下两种情况
- 某一色数牌的牌总数模 3 余 1, 其它两个色都能恰好构成面子
- 某两色数牌的牌总数摸 3 余 2, 剩下一色能恰好构成面子
体现成代码就是, 需要解决以下两个函数
def _waits_4groups(tiles):
# 前略
# 在前面情况不满足时, 调用如下实现
return (_detect_numeric_suit_with_one_more(tiles) +
_detect_2_numeric_suits_with_2_more(tiles))
# 找一个花色, 它的数量模 3 余 1
def _detect_numeric_suit_with_one_more(tiles):
pass
# 找两个花色, 它们各自的牌的数量模 3 都余 2
def _detect_2_numeric_suits_with_2_more(tiles):
pass
在上一篇代码的支援下, 后一个函数的实现相对容易一些, 如下