0

我正在学习 java 课程的介绍,我的部分任务是制作纸牌游戏 War。我使用随机数生成器随机生成卡的等级和花色的数字。我想知道如何使用 switch 语句将其更改为 Ace Spades 或 Jack heart 等两个词......

final int CARDS_IN_SUIT = 13;
final int SUIT = 4;

System.out.print(ran.nextInt(CARDS_IN_SUIT) + 1 + " ");
System.out.println(ran.nextInt(SUIT) + 1);
System.out.print(ran.nextInt(CARDS_IN_SUIT) + 1 + " ");
System.out.println(ran.nextInt(SUIT) + 1 + " " );

这就是我到目前为止所拥有的。我不必使用 switch 语句,将 int 更改为字符串的任何方式都会有所帮助。

4

2 回答 2

3

怎么样:

final String[] cardsArray = {
    "One", "Two", "Three", "Four", "Five",
    "Six", "Seven", "Eight", "Nine", "Jack",
    "Queen", "King", "Ace"
};

final String[] suitArray = {
    "Spades", "Hearts", "Diamonds", "Clubs" 
};

final int CARDS_IN_SUIT = cardsArray.length;
final int SUIT = suitArray.length;

System.out.print(cardsArray[ran.nextInt(CARDS_IN_SUIT)] + " ");
System.out.println(suitArray[ran.nextInt(SUIT)]);
System.out.print(cardsArray[ran.nextInt(CARDS_IN_SUIT)] + " ");
System.out.println(suitArray[ran.nextInt(SUIT)] + " " );
于 2013-11-07T05:06:15.330 回答
2

将 的值存储ran.nextInt() + 1在两个int变量中。这些将是您可以打开的变量。然后你可以初始化两个字符串,调用它们ranksuit. 最后,您可以使用 switch 语句来分配字符串,如下所示:

int randomRank = ran.nextInt(CARDS_IN_SUIT) + 1;
int randomSuit = ran.nextInt(SUIT) + 1;
String rank;
String suit;
switch (randomRank) {
    case 1:  rank = "Ace";
             break;
    case 2:  rank = "Two";
             break;
    .
    .
    .
    case 13: rank = "King";
             break;
    default: rank = "???"
             break;
}
switch(randomSuit) {
    case 1: suit = "Spades";
            break;
    .
    .
    .
    default: suit = "???";
             break;
}

最后,您有两个字符串,一个包含等级,另一个包含花色。您可以使用 打印它们System.out

这些开关需要一些时间来写出来并完成,所以我把它留给你。我希望这能够帮到你。

于 2013-11-07T05:07:00.100 回答