胡牌的算法
麻将是一款在中国很火的游戏,越来越多的棋牌公司都视他为必上的游戏,那么下面我就给大家讲解一下麻将的基本实现。
麻将胡牌的算法:
创建麻将的实体类:
麻将胡牌基本算法是:123 或者 111 在加上一对将牌 就形成了它的胡牌。
假设现在有一副牌: 1万 , 2万 , 3万 , 4万 ,4万,4万 , 6筒 ,7筒 , 8筒 , 2条 , 2条 , 2条 , 5条 ,5条
1.先分类:有将的那一门 和 没有将的那一门,有将的那一门的牌数必定是:3*n+2 , 无将的那一门必定就是3*n
判断如下:
如果有任何一门不满足3*n,或者3*n+2 ,且3n+2 大于有且只有一门 , 则就不算是胡牌
2.找到有将的那一门 , 踢出两个相同的 , 剩下的能否连成连续的三个 , 或者 三个以上的
1万 , 2万 , 3万 , 4万 ,4万,4万 , 6筒 ,7筒 , 8筒 , 2条 , 2条 , 2条 , 5条 ,5条
有将的那一门是条,有可能出现的情况有两种:
1).将为2条 剩下的牌就是 2条 , 5条 ,5条
2).将为5条 剩下的牌就是 2条 , 2条 ,2条
剩下的牌 第一种情况: 1万 , 2万 , 3万 , 4万 ,4万,4万 , 6筒 ,7筒 , 8筒 ,2条 , 5条 , 5条
第二种情况:1万 , 2万 , 3万 , 4万 ,4万,4万 , 6筒 ,7筒 , 8筒 , 2条 , 2条 , 2条
思路:从最小的第一张牌开始连 , 一旦发现有连不上三个 或者 连不上相同的三个 , 即为胡牌失败
2.七对的判断
3.测试代码
下一章节我们讲制作麻将内部的实现
有什么优化的方法 或者 建议 , 大家可以通过留言的方式提出来