如何为二十一点创建for循环?

时间:2014-12-10 03:38:51

标签: java blackjack

尝试创建一个二十一点游戏,我在弄清楚如何打印和一系列卡片方面遇到了一些麻烦。

所以在玩家看到他们的前两张牌之后,他们可以选择击中或站立。

当他们选择点击时,我希望它从我创建的数组中打印一张随机卡,并将卡的整数值(使用.rank来获取int)添加到变量中以计算他们的分数。

在这里,我创建了一个用卡填充两个数组的循环。

Card[] dealerDeck = new Card[21];
Card[] playerDeck = new Card[21];

for (int i = 0; i < 21; i++)
{
    dealerDeck[i] = deck.cards[i+11];
    playerDeck[i] = deck.cards[i+30];
}

如何使用for-loop从数组中打印一些随机卡?

String temp;
int userChoice = 0;

while (score < 21 || userChoice != 1)
{   
    System.out.println("Do you want to HIT or STAND?");
    temp = scanner.nextLine();

    if (temp.contains("H") || temp.contains ("h"))
    {
        System.out.println(" ");  //This is for aesthetics 
        System.out.println("The dealer gave you a ");

        //you can use .printCard(); to print the card out
        // as King of Hearts, Four of Spades, etc.
    }
    else if (temp.contains("S") || temp.contains ("s"))
    {
        System.out.println(" ");
        System.out.println("Your final score is "+score+".");
        userChoice++;
     }
}

对不起,如果这有点令人困惑,英语是我的第一语言。

我想我已经掌握了所有这一切,我只需要了解代码中的内容。 提前谢谢!

1 个答案:

答案 0 :(得分:1)

首先,您需要将数组更改为ArrayList,如下所示:

ArrayList<Card> dealerDeck = new ArrayList<Card>();
ArrayList<Card> playerDeck = new ArrayList<Card>();

这将使您能够从卡阵列中删除卡并更容易地修改它们。要选择一张随机卡,请使用:

Random rand = new Random();
void addRandomCard() {
  int randIndex = rand.nextInt(dealerDeck.size());
  dealerDeck.remove(randIndex);
  playerDeck.add(randIndex);
}

这是你在找什么?