2015-02-27 3 views
-1

После долгого времени я вернулся в Java, и я стараюсь писать (с моим знанием начинающих) короткую игру о случайных чиселJava, если материал в JOptionPane

Игра должна выглядеть так:

  1. Появляется текстовое поле, которое запрашивает трудности (Готово)
  2. Случайное число появляется в соответствии с трудностью (застрял)
  3. В текстовом поле «Вы выиграли, снова рулон?». или «Вы проиграли, раскатать снова» в обоих случаях необходима петля, которая начинается в точке 2. (никакой ключ ...)

В настоящее время я застрял на 2.

я могу генерировать случайные число, но после того, как я выбираю трудность, ничего не происходит.

Вот код:

package randomnumbergame; 

import java.awt.Component; 
import javax.swing.JOptionPane; 

public class RandomNumberGame { 

    static double n; 
    static double e; 
    static double h; 
    static Component frame;    
    static String answer; 

    public static void main(String[] args) { 

     String[] options = new String[] {"Easy", "Normal", "Hard"};    
     JOptionPane.showOptionDialog(frame, "What Difficulty do you want ?", "Difficulty",        
      JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, 
      null, options, options[0]); 
     { 
      if ("Hard".equals(answer)) { 
       n = Math.random();   
       long n3 = Math.round(Math.random() * 99999); 
       System.out.println(n3);       
       JOptionPane.showMessageDialog(frame, n3, "Your randomly generated Number is:", JOptionPane.PLAIN_MESSAGE); 
      } else if ("Normal".equals(answer)) { 
       h = Math.random(); 
       long n4 = Math.round(Math.random() * 9999); 
       System.out.println(n4); 
       JOptionPane.showMessageDialog(frame, n4, "Your randomly generated Number is:", JOptionPane.PLAIN_MESSAGE);          
      } else if ("Easy".equals(answer)) {     
       e = Math.random(); 
       long e4 = Math.round(Math.random() * 999); 
       System.out.println(e4); 
       JOptionPane.showMessageDialog(frame, e4, "Your randomly generated Number is:", JOptionPane.PLAIN_MESSAGE); 
      } 
     } 
    } 
}  

, что случилось с ним? Я просмотрел несколько Вопросов здесь, но я не мог понять это.

+0

'Объект ответ = NULL; } 'закрывает метод' main', остальная часть кода не будет выполняться при запуске. – Jon

+0

в порядке, когда я удаляю его, я получаю сообщение «нестатическая переменная n не может ссылаться из статического контекста» то же самое с ответом, фреймом, h и e – Projekt154

+0

'main' является статическим методом, поэтому все ваши переменные нужны быть статическим, т. е. 'static double n;' – Jon

ответ

0

Вы должны получить результат от JOptionPane ...

int selection = JOptionPane.showOptionDialog(..., 
if (selection != -1) { 
    answer = options[selection]; 

Смотрите JavaDocs для получения более подробной информации о значении возвращаемого значения ...

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