求助麻将的一种胡法(fc日本二人麻将游戏规则)

  • 举报视频:二人麻将游戏规则 难喥最高的清一色来了!七对这种玩法太难赢了

上一篇文章序数了关于使用索引查表法进行麻将胡牌判定这篇文章,我们将会对胡牌的番型进行计算这里的番型指的是国标下的麻将番型,文章中的代码暂时只考慮了二人麻将游戏规则(只有万牌和字牌),想要通用可以按着同样的方法进行扩展。

自摸牌墙上最后一张牌胡牌不记番: 自摸。
胡牌時开杠抓进的牌成胡牌。不记番:自摸
胡牌时,和别人自抓开明杠的牌不记番:胡绝张。

在上一篇文章中提到的查表法进行胡牌判定其中查表法会给我们提供两个返回值,一个是是否胡牌的布尔值还有一个是胡牌类型返回结果(MahjongResult):



结合右手牌(吃碰杠)信息,将每一种胡牌牌型统计成一个结构体:



 
 
 
 

进过统计之后的牌型只需要遍历所有番型进行判断即可。
由于番型种类过多所以这里我们将函数写进map中,通过遍历这个map对其进行判断番型返回的结果是一个二进制掩码,这里的番型有62种所以我们可以使用int64位数对番型进行表示,一位二进淛代表着一种番型同时再使用一种排除番型,表示不能胡某种番番型二进制掩码表示如下:

番型掩码确定后就可以定义函数,


胡牌番型判定只需遍历这个函数:


 
 

番型函数的map初始化需要在init函数中进行


下面是62种番型计算方法:


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

我要回帖

更多关于 二人麻将游戏规则 的文章

 

随机推荐