2014-10-13 3 views
1

단어를 풀 때 게임을 만들려고합니다. 그러나 사용자의 추측이 실제 응답과 동일한 지 제대로 판단 할 수는 없습니다. 사용자의 추측과 일치하지 않는 실제 단어가 무엇인지에 관계없이 여기에있는 것처럼 보입니다.
코드를 일시 중지하고 while 루프가 아닌 다른 사용자 입력을 기다리는 다른 방법이 있습니까?프로그램에서 문자열이 무엇인지 구분할 수 없음

import javax.swing.JOptionPane; 

public class Loop extends CreateWindow{ 
    private static final long serialVersionUID = 1L; 
    public static boolean running = true; 

    public static void GameStart(){ 
     if(running){ 
      int wordNum = 0; 
      for (int i=0;i<=9;i++){ 
       field.setText(""); 
       setScrambledWord(i); 
       while(enter == false){ 
        System.out.println(userAnswer); 
        System.out.println(enter); 
        System.out.println(score); 
       } 
       userAnswer = area.getText(); 
       if(userAnswer == normalWords[wordNum]){ 
        JOptionPane.showMessageDialog(null, "legos", userAnswer, JOptionPane.OK_OPTION); 
       }else if(userAnswer != normalWords[wordNum]){ 
        JOptionPane.showMessageDialog(null, "sogel", userAnswer, JOptionPane.OK_OPTION); 
       } 
       area.setText(""); 
       enter = false; 
       wordNum++; 
      } 
     } 
    } 

    public static void main(String[] args){ 
     new CreateWindow(); 
     running = true; 
     GameStart(); 
    }    
} 



import java.awt.BorderLayout; 
import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 

public class CreateWindow extends JFrame { 
    private static final long serialVersionUID = 1L; 
    JPanel panel = new JPanel(); 
    public static int score = 0; 
    static JTextArea area = new JTextArea(10,40); 
    static JTextField field = new JTextField(40); 
    JButton button = new JButton("Press to Enter Answer"); 
    public static boolean enter; 
    public static String userAnswer; 
    public static String[] normalWords = { 
     "yellow", 
     "alphabet", 
     "tangent", 
     "elephant", 
     "amusement", 
     "cat", 
     "eerie", 
     "wonder", 
     "shadows" 
    }; 
    public static String[] scrambledWords = { 
     "lloeyw", 
     "lphaabte", 
     "natgnte", 
     "leehpnta", 
     "mauseenmt", 
     "tca", 
     "reeei", 
     "dowenr", 
     "shawdos" 
    }; 
    CreateWindow(){ 
     setSize(500,300); 
     setResizable(false); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLocationRelativeTo(null); 

     field.setEditable(false); 

     button.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent e) 
      { 
       enter = true; 
       System.out.println("You clicked the button"); 
       System.out.println(enter); 
      } 
     });  
     add(panel); 
     panel.add(field, BorderLayout.PAGE_START); 
     panel.add(area, BorderLayout.CENTER); 
     panel.add(button, BorderLayout.PAGE_END); 
     setVisible(true); 
    } 

    public static void setScrambledWord(int i){ 
     field.setText(scrambledWords[i]); 
    } 

    public void clearArea(){ 
     area.setText(""); 

    } 
} 
+2

사용 userAnswer.equals (normalWords [wordNum]); – Nabin

답변

1

==는 두 개의 참조가 동일한 메모리 주소에 포인트를 비교하는 경우가 확인 의미, 개체의 정체성을 비교합니다.

.equals()은 값에 따라 개체를 비교합니다.

+0

중복으로 작성하십시오. – sunleo

관련 문제