2014-11-11 3 views
-3

` программа генерирует случайную карту, и вы должны угадать, если следующая карта генерируется выше или ниже или равен В настоящее время она выводит только цифры, а не имя карты я хочу его для отображения названия карты, когда целые "currentCard" и "nextCard" соответствуют значениям 1 (аСЕ), 11 (джек), 12 (королева) и 13 (король)Как заставить мою программу отображать целые числа в виде строк?

Random generator = new Random(); 
    int currentCard = generator.nextInt((KING-ACE)+1)+ACE; 
    generator = new Random(); 
//ace = 1, king = 13, queen = 12, jack = 11 
    while(count<GUESSES_TO_WIN) 

    { 

     int nextCard = generator.nextInt((KING-ACE)+1)+ACE; 
     //here i want it to display "king" if the number generated is 13, "ace" if its 1,etc 
       String inputGuess = JOptionPane.showInputDialog(null,    
       "Your current card is " +currentCard + ". " + 
       "Guess if the next card is higher, lower or equal to your current card." 
       +"\n" + (4-count) + " more guesses until you win!"); 
     Scanner inputScanner = new Scanner (inputGuess); 
     guess = inputScanner.nextLine(); 
     if(guess.equalsIgnoreCase("higher")&& 
       (currentCard<nextCard)) 

     { 
      JOptionPane.showMessageDialog(null, 
        guess +" is correct. The next card was " + nextCard); 
      inputScanner.close(); 
      currentCard = nextCard; 
      count++; 
     } 
     else if (guess.equalsIgnoreCase("lower") && 
       (currentCard>nextCard)) 
     { 
      JOptionPane.showMessageDialog(null, 
        guess +" is correct. The next card was " + nextCard); 
      inputScanner.close(); 
      currentCard = nextCard; 
      count++; 
     } 
     else if (guess.equalsIgnoreCase("equal to") && 
     (currentCard == nextCard)) 
     { 
      JOptionPane.showMessageDialog(null, 
        guess +" is correct. The next card was " + nextCard); 
      inputScanner.close(); 
      currentCard = nextCard; 
      count++;` 

в настоящее время он выводит только цифры, а не имена карт

+3

Подумайте о том, как правильно отформатировать код, чтобы мы могли видеть, что вы пытаетесь сделать. – killQuotes

+0

Да, жаль, что в настоящее время я пытаюсь это сделать – Marzung

+0

Даже если код был отформатирован правильно, актуальный вопрос отсутствует. И вы должны пометить вопрос на правильном языке. – andy

ответ

1

Используйте Enum для представления набора игральных карт и номера для сопоставления имен. См. Javadocs on Enum: https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

+0

Есть ли другой способ сделать это, кроме использования Enum? Это для присваивания, и я не думаю, что его ожидали знать Enums для него. – Marzung

+0

Ну, вы можете создать метод, который использует оператор switch, проверяющий, какое целое оно является, и возвращает соответствующую строку. См .: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html – CheeseFerret

+0

Будут ли выполняться несколько операторов if? – Marzung

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