我正在介绍java课程,我的部分任务是制作卡片游戏War。我使用随机数生成器随机生成卡的等级和套装的数字。我想知道如何使用switch语句将其改为两个词,如Ace Spades或Jack hearts等......
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更改为字符串的方法都会有所帮助。
答案 0 :(得分: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)] + " " );
答案 1 :(得分:2)
将ran.nextInt() + 1
的值存储在两个int
个变量中。这些将是您可以打开的变量。然后,您可以初始化两个字符串,将其称为rank
和suit
。最后,您可以使用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
打印它们。
这些开关需要一些时间来写出并完成,所以我会留给你。我希望这会帮助你。