2016-06-16 90 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); 
    } 
    } 

}