如何在Java中的随机数生成器上使用switch语句?

时间:2013-11-07 04:43:48

标签: java random

我正在介绍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更改为字符串的方法都会有所帮助。

2 个答案:

答案 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个变量中。这些将是您可以打开的变量。然后,您可以初始化两个字符串,将其称为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打印它们。

这些开关需要一些时间来写出并完成,所以我会留给你。我希望这会帮助你。