【发布时间】:2015-06-02 05:08:39
【问题描述】:
我正在编写一个二十一点游戏,但我已经完成得很远了。然而,我刚开始在每手牌后将分数加在一起(我认为这很容易),但事实证明 A 让我无休止地绞尽脑汁。由于赌场使用多副牌,从数学上讲,一手牌可能最多 21 个 A。
我如何创建一个循环来遍历一个名为 Hand 的整数数组列表,它的整数与手中的牌相对应。前任。一名玩家击球,现在有一张 A、一张 5、一张 2、一张 K,现在抓到一张 A。代表他的手的arraylist是[1, 10, 2, 5, 1]
我的想法:
public void calculatePlayerScore()
{
int counter = 0;
int aceCount = 0;
for (int i = 0; i < hand.size(); i++)
{
if (hand.get(i) != 1)
{
counter++;
}
else
{
aceCount++;
}
}
for (int i = 0; i < aceCount; i++)
{
//Now that we know the regular cards
//and we know how many aces there are
//we should be able to loop to find the most
//optimal score without busting, and pick the highest among those
}
如果有人对此有任何想法,请告诉我。非常感谢帮忙。
【问题讨论】:
-
对于本网站来说,这是一个非常广泛的问题,需要付出大量努力才能回答。见stackoverflow.com/help/how-to-ask
-
我知道这有点偏离问题的标准,但老实说,我不知道我是否可以更简洁地问它。我从来没有遇到过我的数组中的数字可以是 11 或 1 的情况。我问 SO,因为有人可能有一个聪明的方法来回答这类问题。如果有人可以将其编辑为:“如何计算可以是一个数字或另一个数字的 ArrayList 中的值 - 二十一点游戏”,我很抱歉我的主题行如此糟糕。