【发布时间】: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 除非是出于练习的原因,否则仅计算在你下回合击球的情况下失败的几率是不够的 - 你还需要考虑,考虑到你最终可以得到的每一个分数以及如何可能,它们有多大可能击败庄家。并且还递归地考虑从每个分数中你可能会再次击中,依此类推。这是您静态模拟和预先计算最佳可能性的东西,而不是试图在飞行中找出答案。