麻将服务器功能JAVA实现-胡牌的算法

  • Post author:
  • Post category:java


胡牌的算法

麻将是一款在中国很火的游戏,越来越多的棋牌公司都视他为必上的游戏,那么下面我就给大家讲解一下麻将的基本实现。

麻将胡牌的算法:

创建麻将的实体类:

麻将胡牌基本算法是: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.测试代码

下一章节我们讲制作麻将内部的实现

有什么优化的方法 或者 建议 , 大家可以通过留言的方式提出来



版权声明:本文为rzkgogo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。