gpt4 book ai didi

java - 在 BlackJack 游戏中如何决定 Ace 何时算作 1 或 11?

转载 作者:行者123 更新时间:2023-12-01 08:15:41 25 4
gpt4 key购买 nike

我正在尝试计算简单的二十一点游戏的分数。我希望计算机能够根据牌的情况选择何时将 Ace 卡计为 1 或 11,但我不想对这种情况进行硬编码。

我应该怎么做?

这是我在荷官/玩家手牌类别中计算分数的方式:

public int calcScore()
{
int score = 0;
Link current = first;

while(current != null)
{
score = score + current.card.getValue();
current = current.next;
}

return score;
}

这是我在 Card 类中指定卡的值的方式:

public int getValue()
{
int value = 0;

if (rank == 1)
value = 11;
else if (rank == 11 || rank == 12 || rank == 13)
value = 10;
else
value = rank;

return value;
}

最佳答案

问题是计算需要知道当前总数是多少,所以这样编码:

public int getValue(int currentTotal) {
int value = 0;

if (rank == 1 && currentTotal < 11)
value = 11;
else if (rank == 1)
value = 1;
else if (rank == 11 || rank == 12 || rank == 13)
value = 10;
else
value = rank;

return value;
}

我还没有彻底考虑过这个问题,但我很确定你不需要检查是否有多个后续 A,因为唯一的破局方法就是如果你击中了21、没有人会这么做。如果这不起作用,您可能必须传递已计数的 A 的累积总数并使用更复杂的逻辑。

关于java - 在 BlackJack 游戏中如何决定 Ace 何时算作 1 或 11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com