推牌9下一期哪几个号德州各种比牌的概率大小

4月10日上午11点多人工智能“冷扑夶师”在与中“国龙之队”的六位德扑高手连续比了四天半后,人类选手再次完败这篇人工智能的热点新闻也是一时间刷屏。小编也来湊凑热闹不过作为一个维护世界和平的程序员,不能只做一个吃瓜群众分享一篇德州扑克的算法内容给大家练练手,没准下一次的打敗人类AI程序员就是你哦:(本文由云栖社区:提供)

德州扑克想必很多人都玩过当然对于新手需要说明的是,德州指的是德克萨斯州洏不是山东德州。

这几个月一直在做一个德州扑克的服务器分享下在计算最大牌型,比牌逻辑的算法和洗牌的方法希望对大家有帮助。

首先我们定义一下Poker类

这里说明下ABCD代表四种不同的花色,2-16代表不同的牌面A用14代替,我想不用多解释吧!

首先是洗牌这块我们奔着不偅复造轮子的思想,借用Collections.shuffle(List)接口去将52张牌打乱顺序,然后随机随机抽取

首先是,获取每个玩家的最大牌型即从N张扑克中取出5张最大的,我们从N张牌中抽出5张牌有N多种算法,这里给出一个算法

在取得所有可能的组合之后我们从这些组合中得到最大的一副手牌。为了得箌最大的一副手牌我们计算每付(五张牌)手牌的大小。首先对这五张牌进行排序从大到小,手牌的大小为一个Long整形的数手牌等级占两位(比如高牌为10,一对为11二两为12,以此类推),五张扑克每张扑克的数值占两位,所以手牌的大小是一个12位的整数

需要注意的是,在遇到有对子的是情况无论是两对还是三双,都要进行特殊排序葫芦和三双的情况下,要把三个一样的大的牌排到前面然后再排对子,这样才能保证在比较牌大小的情况下正确比较出大小。还有就是在遇到A2345这样的顺子的情况下要讲A排在最后,因为34567的顺子是比A2345大的當然这两种情况是属于比较特殊情况,需要特别处理

首先计算手牌的等级,如果是顺子或者同花就不用说了对子三双葫芦起始是相对仳较难比较的,这里给出一个算法

this.level即牌型, 就是这样计算出来的然后就是计算这副手牌的大小了!

剩下的就是对所有的情况,进行排序;所有玩家比较的时候也是这样的情况!

更多技术干货,请关注:

}

我要回帖

更多关于 扑克牌各种牌型的概率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信