《简单赢 21点计牌器》算法

这里将零零碎碎地记录关于《简单赢 21点》的相关算法的说明。

一、记牌

通过一个一维数组Card(10),就可以记录剩余的每一张牌的数量。Card(1)为A的数量、Card(2)为2的数量,依此类推,唯Card(10)是10-K的数量。

二、规则

有的规则不会影响算牌工作,比如“双倍”、“五龙”、“投降”等,可以直观地通过预期概率来决定;而有的规则将会影响算牌,在算牌算法的时候,就将按照设置的规则对算法进行相应的调整。这些规则包括:

  1. 一盒牌中的牌副数,从1副到8副都可以选择;
  2. 洗牌方式:是自动洗牌机还是手工洗牌,自动洗牌的话相当于每局都是一盒新的牌;
  3. 庄家在软17点是否停牌:这决定了庄家点数的最终预期结果。

三、玩家的停牌胜率

只要将玩家当前的点数与庄家的预期点数进行逐项匹配,即可计算出玩家的停牌胜率。庄家的预期点数比较复杂,将在后面说到。

四、玩家的拿牌胜率

这里只需要计算玩家那一张牌后的胜率,只要将玩家的当前点数和Card(n)逐项拟合后再和庄家的预期点数进行逐项匹配,即可计算出玩家的拿牌胜率。通过比较玩家的停牌胜率和拿牌胜率,就可以决定:是否拿牌,是否双倍下注,是否投降。

五、庄家的预期点数

这个算法相对比较复杂一点,相当于一个寻路算法。按照设置,将庄家的当前点数和Card(n)逐层拟合,可以计算出庄家的预期点数(即爆牌的概率,17-21点概率,黑杰克的概率)。

六、玩家的游戏策略

设置玩家的游戏规则有2点作用,1是用来计算分牌预期,2是用来模拟牌局验证策略。默认的玩家策略为“执行高胜率动作”,即在所有的可选动作中选取胜率最高的动作执行,比如16点对7点,就会选择拿牌。

玩家可以设置自己的游戏策略,可设置的选项有:

  1. 参加规则:在什么条件下参加游戏?
  2. 下注规则:下注多少金额的规则?
  3. 动作规则:执行拿牌、停牌、分牌、双倍、投降等动作的具体规则?
  4. 离桌规则:离开当前桌,开始一盒新牌。

七、玩家的分牌胜率

和庄家的预期点数算法类似,当玩家的牌可以分牌的时候,根据“玩家的游戏策略”设置,计算出分牌后玩家的预期点数;再拿这写预期点数与庄家的预期点数进行逐项匹配,计算出玩家的分牌胜率。

留言|评论

浏览器收藏夹 百度收藏 QQ书签 谷歌书签 新浪vivi收藏夹 更多地方......
New Blackberry phones on sale | Thanks to Business Opportunity, Highest CD Rates and Registry Software