跑鬍子胡牌演算法
阿新 • • 發佈:2018-11-07
騰訊課堂視訊講解:https://ke.qq.com/course/305608?tuin=104cb0e2
1、 基於查表的lua版跑鬍子判胡演算法
將所有能胡的牌型和其對應的胡息放入表中
判斷胡牌時,只需要查表得到胡息,如果表中沒有此項,則不能胡,如果有,得到表中的胡息,加上跑、提、碰、偎的胡息,如果大於最低胡息,就能判斷是否胡牌。
程式碼:https://github.com/yuanfengyun/qipai/tree/master/phzlib_lua
優點:速度極快
缺點:表會佔用一定記憶體,如果用字串儲存,有60M左右,如果用二進位制,則是20M
2、基於回溯的c語言版
1、去除不能拆解的坎
2、拆解小牌 分別深度拆解為順子、小小大的絞、大大小的絞、二七十,小牌拆解完後,拆解大牌
3、拆解剩餘胡大牌,大牌只需要去除 貳柒拾後,按順子拆解就行
4、如果不能完成拆解,則不能胡
5、獲取最大的小牌和大牌胡息和,然後加上坎的胡息、跑、提、碰、偎的胡息,如果能達到最低胡息,則胡了。
程式碼:https://github.com/yuanfengyun/qipai/tree/master/phzlib_c