房卡棋牌游戏正如火如荼的遍地開花迫使我也加入开发中的一员,最近完成了一套麻将棋牌游戏!今天给大家分享一下其中的算法部分!更多房卡棋牌游戏技术会陆續分享!!!转载请说明出处!
一副麻将是否能胡牌就必须满足以下公式(特殊牌型出外,7对龙七对)
N*AAA+N*ABC+1*AA看懂了吗?如果一副牌由N个刻子N个連牌,有且只有一对将牌组成!那么我们就可以认为这副牌胡了!
如果还没有搞懂没关系下面我们依次讲解什么意思! AAA ABC AA
AAA:刻子 3张花色一样,点数一样的牌俗称一砍牌
AA:对子 2张花色一样,点数一样的牌俗称麻将
可以回忆一下我们平时打麻将胡牌之后牌型是否都满足这样的公式。
现在我们知道了胡牌的公式那么在程序语言中我们是怎么来计算的呢??
工欲善其事,必先利其器!!!首先我们来定义一個麻将的数据结构
我们知道一副麻将里面有3种花色(万筒,条)9个点数(1----9),我们就可以定义一个三维数组来存储我们手牌
这副牌在数组裏面就可以这样来定义
看懂了嚒每一个值代表每一张牌出现了几次,我们还可以在handCard里面再多定义一个数组用来表示每一张牌的属性方便我们后面来计算连牌
end这样我们手牌牌如何用数据来表示就完成了,接下来我们就可以开始拆牌了定义几个数组分别用来储存 同一张牌絀现了4次的牌,3次的牌2次的牌。