不使用查表法和遍历法的高效日麻判听牌算法。
长期维护的算法介绍文档:《日麻听牌判断归类算法》,大致原理是对牌组进行分类剪枝。
完整型判断Lv.1 | 完整型判断Lv.2 | ~指“不完整型” | ||
---|---|---|---|---|
牌数 | IntegrityType | 类型名 | 判断听牌方法 | 备注 |
3n | Type0 | 完整型 | 直接判断(IntegrityJudge()) | |
TypeEx | 雀半不完整型 | 去对+取坎张 | 半~与雀头~合并而成 | |
3n+1 | Type1 | 半不完整型 | 取坎张(会成对出现) | |
雀面不完整型 | 遍历+去对 | 雀头~与面子~合并而成 | ||
3n+2 | Type2 | 雀头不完整型 | 去对(去掉一个对子) | |
面子不完整型 | 遍历(3-9次)+与前后块连接 |
仓库提供C#、C++ (Standard: 20)、C++/CLI三种语言实现,也可以按照文档用其他语言实现。
若有BUG欢迎提ISSUE