2016-06-16 145 views
0

我想製作一個遊戲,您必須猜測一個數字,我決定在遊戲中添加復活節彩蛋,但每當我嘗試檢查復活節彩蛋時,它只能與最後一個一起使用檢查多個字符串

public class Guess extends Applet implements ActionListener 
{ 
    util u = new util(); //Utility class 
    int answer = u.rand(1,100); //Randomize answer 
    String ansWord = Integer.toString(answer); //Convert Integer to String 
    int winloss = 1; //Set winloss to display startup message 
    TextField input; //Declare TextField 
    boolean pizza,blazeIt; //Easter Eggs 
    String response; //Declare Strings 
    public void init() 
    { 
     input = new TextField(5); 
     add(input); 
     input.addActionListener(this); 
    } 

    public void paint(Graphics g) 
    { 
     g.drawString(""+winloss,10,20); 
     switch(winloss) 
     { 
      case 1:g.drawString("Guess What Number I Am Thinking Of",getWidth()/2-100,50); 
      break; 
      case 2:g.drawString("How did you know?!?!?!",getWidth()/2-50,50); 
      break; 
      case 3:g.drawString("Nope",getWidth()/2-5,50); 
      break; 
      case 4:pizza = true; 
      break; 
      case 5:blazeIt = true; 
      break; 
      default:g.drawString("Broken",10,10); 
      break; 
     } 
     easterCheck(g); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
     response = String.valueOf(input.getText()); 
     if(response.equals(ansWord)) 
     { 
      winloss = 2; 
     } 

     else 
     { 
      easter("420",5); //Does not work 
      easter("Pizza",4); //Works 
     } 
     repaint(); 
    } 

    public void easter(String wordInput, int output) 
    { 
     if(response.equals(wordInput)) 
     { 
      winloss = output; 
     } 
     else 
     { 
      winloss = 3; 
     } 
    } 

    public void easterCheck(Graphics g) 
    { 
     if(pizza) 
     { 
      g.drawString("Delicious!",10,getHeight()-10); 
     } 
     if(blazeIt) 
     { 
      g.drawString("Blaze it!",10,getHeight()-20); 
     } 
    } 

} 

我該如何解決這個問題?

+0

我發佈了我的分析。請學習如何使用調試工具,這非常有用。 – waltersu

+0

1)爲什麼要編寫一個小程序?如果是由於老師指定它,請將它們轉介給[爲什麼CS教師應該**停止**教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop教學-java的小應用程序/)。 2)請參閱[不支持Java插件的支持](http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/)和[轉移到無插件Web]( https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free)。 .. –

+0

.. 3)爲什麼要使用AWT?看到[這個答案](http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)有很多很好的理由放棄AWT使用組件有利於Swing。 –

回答

0

因爲每次調用復活節之後(「420」,5),您都會在下一次調用復活節(「Pizza」,4)。所以如果輸入是「420」,你知道它是scecial字符串,你設置winloss = 4。但之後,在復活節內(「Pizza」,4),您將輸入(即「420」)與「比薩」進行比較,並重置winloss = 3。這就是你的代碼無法工作的原因。

public class Guess extends Applet implements ActionListener 
{ 
    util u = new util(); //Utility class 
    int answer = u.rand(1,100); //Randomize answer 
    String ansWord = Integer.toString(answer); //Convert Integer to String 
    int winloss = 1; //Set winloss to display startup message 
    TextField input; //Declare TextField 
    boolean pizza,blazeIt; //Easter Eggs 
    String response; //Declare Strings 
    public void init() 
    { 
    input = new TextField(5); 
    add(input); 
    input.addActionListener(this); 
    } 

    public void paint(Graphics g) 
    { 
    g.drawString(""+winloss,10,20); 
    switch(winloss) 
    { 
     case 1:g.drawString("Guess What Number I Am Thinking Of",getWidth()/2-100,50); 
     break; 
     case 2:g.drawString("How did you know?!?!?!",getWidth()/2-50,50); 
     break; 
     case 3:g.drawString("Nope",getWidth()/2-5,50); 
     break; 
     case 4:pizza = true; 
     break; 
     case 5:blazeIt = true; 
     break; 
     default:g.drawString("Broken",10,10); 
     break; 
    } 
    easterCheck(g); 
    } 

    public void actionPerformed(ActionEvent e) 
    { 
    response = String.valueOf(input.getText()); 
    if(response.equals(ansWord)) 
    { 
     winloss = 2; 
    } else if (response.equals("420")) { 
     winloss = 5; 
    } else if (response.equals("Pizza")) { 
     winloss = 4; 
    } else { 
     winloss = 3; 
    } 
    repaint(); 
    } 

    public void easterCheck(Graphics g) 
    { 
    if(pizza) 
    { 
     g.drawString("Delicious!",10,getHeight()-10); 
    } 
    if(blazeIt) 
    { 
     g.drawString("Blaze it!",10,getHeight()-20); 
    } 
    } 

}