APP下载

基于扑克概率的编程算法研究

2013-04-13陈思

科技视界 2013年14期

陈 思

(福州大学 数学与计算机科学学院,福建 福州 350000)

0 背景

德克萨斯扑克全称Texas Hold’em poker,中文简称“德州扑克”。它是一种玩家对玩家的公共牌类游戏。一张台面至少2人,最多22人,一般是由2-10人参加。德州扑克一共有52张牌,没有王牌。每个玩家分两张牌作为“底牌”,五张由荷官陆续朝上发出的公共牌。开始的时候,每个玩家会有两张面朝下的底牌。经过所有押注圈后,若仍不能分出胜负,游戏会进入“摊牌”阶段,也就是让所剩的玩家亮出各自的底牌以较高下,持大牌者获胜。因技巧性强,易学难精又被称为“扑克游戏中的凯迪拉克”。

在这个游戏里,如何根据手头的牌以及桌面上的牌计算概率,成为胜负的关键。与一副牌的已知牌型计算不同,德州扑克不但需要计算牌型的RANK(即排名)值,更需要计算出当前牌型的具体胜率。其中具体的胜率计算非常复杂,笔者将在本文中探讨一种可行的方式。

1 游戏介绍

由于本文为概率计算介绍,不在赘述德州扑克中关于筹码的计算规则,仅把扑克的基本胜负规则做一个阐述。

每个玩家拥有两张底牌,桌面上将陆续发至5张公共牌。当全部5张公共牌发完后,玩家用自己的2张底牌和5张公共牌结合在一起,选出5张牌,不论手中的牌使用几张(甚至可以不用手中的底牌),凑成最大的成牌,跟其他玩家比大小。

比牌先比牌型,大的牌型大于小的牌型,牌型一般分为10种,从大到小为:皇家同花顺(royal flush):由AKQJ10五张组成,并且这5张牌花色相同;同花顺(straight flush):由五张连张同花色的牌组成;……

登录APP查看全文