2014-11-05 4 views
0

Я пишу код для HiLo карточной игры, в которой игрок должен угадать ли следующая карта будет обращено выше, ниже или равна.
Хотя для чисел 11, 12, 13 и 1, я хотел бы выход быть Джек, Королева, король и Ace.как для вывода чисел в виде строк/имена

Я разработал программу, чтобы указать, где она возвращает случайное int между 0 и 13 (я до сих пор не знают о том, как я хотел бы написать код, чтобы сделать его только выбрать случайное int между 1 и 13).
Как настроить его так 11, 12, 13 и 1 числа появляются как

The Card pulled is the Ace, 
is the next card Higher, Lower or Equal? 

и так далее, я пытался if заявления и изменения int в String, но ни работать, и к моему напрасно Я ничего не смог найти про генератор струнного ...

Вот мой код, любая помощь будет принята с благодарностью

import java.util.Random; 
import javax.swing.JOptionPane; 

public class HiLo { 

    public static final int JACK = 11; 
    public static final int QUEEN = 12; 
    public static final int KING = 13; 
    public static final int ACE = 1; 

    public static void main(String[] args) { 

     int correctGuesses = 0; 

     Random generator = new Random(); 
     int currentCard; 
     int nextCard = generator.nextInt(KING+1); 

     while (correctGuesses < 4) { 
      currentCard = nextCard; 
      nextCard = generator.nextInt(KING+1); 

      Object[] options = {"Higher", 
       "Lower", 
      "Equal"}; 
      int Input = JOptionPane.showOptionDialog(null, 
      "The Card pulled is the " + currentCard + 
      " \nis the next card Higher, Lower or Equal?", 
      "HiLo Card Game", 
      JOptionPane.YES_NO_CANCEL_OPTION, 
      JOptionPane.QUESTION_MESSAGE, 
      null, options, options[0]); 

      if(nextCard > currentCard) { 
       switch(Input) { 
        case JOptionPane.YES_OPTION: 
         correctGuesses++; 
         break; 
        case JOptionPane.NO_OPTION: 
        case JOptionPane.CANCEL_OPTION: 
         correctGuesses = 0; 
         break; 
       } 
      } else if(nextCard < currentCard) { 
       switch(Input) { 
        case JOptionPane.NO_OPTION: 
         correctGuesses++; 
         break; 
        case JOptionPane.YES_OPTION: 
        case JOptionPane.CANCEL_OPTION: 
         correctGuesses = 0; 
         break; 
       } 
      } else { 
       switch(Input) { 
        case JOptionPane.CANCEL_OPTION: 
         correctGuesses++; 
         break; 
        case JOptionPane.YES_OPTION: 
        case JOptionPane.NO_OPTION: 
         correctGuesses = 0; 
         break; 
       } 
      } 
     } 

     JOptionPane.showMessageDialog(null, 
      "Congratulations, You guessed correctly 4 times," 
     + "\nthe Last Card was the " + nextCard + ", resart to play again"); 
    } 


} 

ответ

0

Измените текущую карту на строку. Тогда вместо

currentCard = nextCard; 

сделать

currentCard = Integer.toString(nextCard); 

Затем вы можете сделать ваши если заявления и назначить строки вам нужно для выхода.

0
String getCardString(int card) { 

    String cardString = null; 

    switch (card) { 
     ACE: 
      cardString = "ace"; 
      break; 
     KING: 
      cardString = "king"; 
      break; 
     // same for queen and jack 
     DEFAULT: 
      cardString = Integer.toString(nextCard); 
    } 
     return cardString; 
} 


JOptionPane.showMessageDialog(null, 
      "Congratulations, You guessed correctly 4 times," 
     + "\nthe Last Card was the " + getCardString(nextCard) + ", resart to play again"); 

Для генератора случайных чисел, вы можете генерировать от 0 до 12, затем добавьте 1:

nextCard = ACE + generator.nextInt(KING); 
+0

как бы таким образом указать, если королева была выше, чем гнездо, или наоборот? – roughosing

+0

Вы будете использовать туз, королеву, домкрат и король как номер везде, за исключением случаев, когда вы будете показывать результаты пользователю. Просто позвоните 'getCardString (int card)' (я забыл аргумент в примере), когда вы будете генерировать строковое сообщение для пользователя. –

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