2013-11-07 3 views
0

Я нахожусь в курсе java, и часть моего задания - сделать карточную игру War. Я использовал генератор случайных чисел, чтобы случайным образом генерировать число для ранга карты и костюм. Я хотел бы знать, как использовать оператор переключения, чтобы изменить его на два слова, как Ace дама или сердца Джек и т.д ....Как использовать оператор switch для генератора случайных чисел в Java?

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

КАК вы более подробно объясните свою проблему? Что именно вы хотите? – TheLostMind

+0

Вам нужно будет использовать два переключателя и оценить номер карты и костюм отдельно, если вы не хотите сходить с ума. Также не беспокойтесь, переключатель подходит для такого рода вещей. Пун предназначался! – Radiodef

ответ

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)] + " "); 
2

магазин значений ran.nextInt() + 1 в двух int переменных. Это будут переменные, которые вы можете включить. Затем вы можете инициализировать две строки, называя их rank и suit. Наконец, вы можете использовать переключатель заявление для назначения строки следующим образом:

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.

Коммутаторы потребуют времени, чтобы написать и заполнить, поэтому я оставлю это вам. Я надеюсь, что это помогает вам.

Смежные вопросы