1. 程式人生 > >跑鬍子胡牌演算法

跑鬍子胡牌演算法

騰訊課堂視訊講解: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