2016-06-16 2 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アプレットを教えるのを止めるべき理由](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-teaching-java-applets /)を使用します。 2)[Java Plugin support deprecated](http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/)および[Plugin-Free Webへの移動]を参照してください( https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free)。 .. –

+0

.. 3)なぜAWTを使用するのですか? Swingに賛成するコンポーネントを使用してAWTを放棄する理由は、[この回答](http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978)を参照してください。 –

答えて

0

あなたがイースター( "420"、5)を呼び出したたびに、あなたはいつもイースター( "ピザ"、4)を次回に呼び出します。したがって、入力が "420"であれば、それは認定文字列であり、winloss = 4と設定されています。しかしその後、イースター( "Pizza"、4)の中で、あなたの入力( "420")を "Pizza"と比較し、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); 
    } 
    } 

} 
関連する問題