【问题标题】:Blackjack help: advice for user about whether to hit or stand二十一点帮助:为用户提供关于是否击打或站立的建议
【发布时间】:2013-05-26 19:47:49
【问题描述】:

好的,所以我正在制作二十一点程序 使用输出框。我的问题是试图为用户提供某种帮助。 我需要帮助找出此时该做什么:

 if (y.equalsIgnoreCase("Y"))
 {
               if(userHand.getBlackjackValue()+10<21)
               {
                   System.out.println("You should hit.");
               }
               if(userHand.getBlackjackValue()+10>21)
               {

               }
  }

问题在于第二个内部 if 语句。应该如何确定球员应该继续击球还是应该站立。我将在与程序有关的包中包含该类以及其他类。我在想我可能需要为项目添加更多方法才能使其正常工作

https://sites.google.com/site/np2701/

如果你能指出一些我可以修复的复杂代码,谢谢

【问题讨论】:

  • 我认为“算牌”是指计算已经发过的牌并计算下一张牌的概率。你所描述的是二十一点的标准得分。对于如何做出此决定,您是否有特定的算法,或者这是您的问题?如果是这样,为什么不直接使用拉斯维加斯经销商使用的相同启发式方法 - 如果 16 或以下命中,则站在 17 或以上?
  • @StephenCarlson 制作一个不如玩家智能的提示系统有什么好处?
  • 好的,我明白他在说什么。我正在尝试计算下一张可能导致分数超过限制的特定牌的几率。并根据这些赔率告诉玩家是否击球。我将使用斯蒂芬卡尔森关于决策制定的内容
  • 如果我找不到更准确的方法,我将使用斯蒂芬卡尔森关于决策的最后手段
  • @user2426191 除非是出于练习的原因,否则仅计算在你下回合击球的情况下失败的几率是不够的 - 你还需要考虑,考虑到你最终可以得到的每一个分数以及如何可能,它们有多大可能击败庄家。并且还递归地考虑从每个分数中你可能会再次击中,依此类推。这是您静态模拟和预先计算最佳可能性的东西,而不是试图在飞行中找出答案。

标签: java string blackjack


【解决方案1】:

如果算牌超出范围,请为您使用的规则(套牌数量等)使用基本策略表:http://wizardofodds.com/games/blackjack/strategy/calculator/ - 您应该根据您的手牌点数和庄家的牌来索引该表,并返回存储在表中的选项。您可以选择将其作为二维数组存储在代码中,或从文件中加载。您可以将其存储为字符并解释字符的含义,或者作为枚举,例如,您可以将枚举 Hints 称为具有成员 Hit、Stand、Split 等。

如果忽略算牌,基本策略表可以保证提供最佳成功几率,因为我们会获取所有相关状态并选择统计上的最佳选项。

如果我们也想计算纸牌计数,那么我们必须跟踪真实计数(运行的高低计数除以剩余的牌组数量),并且对于某些状态(玩家手牌得分 vs 庄家显示的牌) ) 而不是总是做同样的动作,如果 True Count 高于 x,我们会做一个动作,如果它低于 x,我们会做另一个动作。此外,如果真实计数较低(低于 1),您应该几乎不下注,并且随着实际计数增加超过 1 时下注越来越多,但您冒着破产风险的风险也不大。在此处阅读更多信息http://wizardofodds.com/games/blackjack/card-counting/high-low/

为了以编程方式表示这样的索引,我将创建一个包含三个字段的对象:索引下方操作、索引上方操作和索引值。

【讨论】:

    【解决方案2】:

    如果您真的想向用户建议正确的玩法,您需要查找您正在模拟的游戏的基本策略。这些表是基于玩家的总数(你必须知道它是软还是硬),以及庄家的明牌。

    如果您只想知道“我在下一次击球时出局的几率是多少”,那就是(将您出局的剩余牌张数)/(剩余牌张总数)。这不仅需要玩家总数,还需要实际的牌。例如,在单副牌中,如果玩家有两个 7 对抗庄家 5,那么剩下的 49 张牌中有 24 张爆牌,因此您将有 24/49(约 49%)的时间爆牌。但如果你有 10 和 4(也有 14)对抗庄家 10,则只剩下 22 张爆牌,有 45% 的机会爆牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-30
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 2011-03-13
      • 2012-01-13
      相关资源
      最近更新 更多