判斷胡牌
麻将胡牌其實是按照nAAA + mABC + DD的套路,算法判斷也很好實作,找出DD,然後剩下的牌都能形成AAA或者ABC即可胡牌。本文隻介紹麻将普通胡牌的算法,該算法經過驗證可判斷除特殊牌型外(十三幺,七對等)的所有胡牌牌型。
判斷癞子胡牌
癞子胡牌的實作也是基于該胡牌算法,通過去掉癞子的牌型分析和癞子數得到癞子組合,根據癞子數和牌型形成癞子組合,把組合與原牌型合并再判斷胡牌即可。優于其他癞子算法的是,該算法可以得到手牌的最終牌型,即可知道癞子具體變成什麼牌。
癞子胡牌的牌型分析
和胡牌類似,先找出DD。由于癞子也能作為D,可形成多種去除DD的牌型,根據去除DD牌型和剩餘的癞子數去獲得癞子可形成的組合。去除DD的牌全是坎刻即可胡牌,是以剩餘癞子全部要作為坎刻。
相關函數
判斷胡:check_hu
判斷胡找出DD:move_dui_pai_list
判斷癞子胡:check_lai_hu
判斷癞子胡找出DD:get_lai_dui
分析牌型坎刻:get_kan_ke
merge牌型和癞子組合:check_combin_hu
github連結