麻将服务器功能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.测试代码

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值