2017-11-24 2 views
-1

나는 대학 과제를위한 게임을 만들고 있는데, 그 중 하나는 누가 프로그램을 시작 하는지를 묻는 것입니다.누가 먼저 가야합니까? 정적 변수 문제

나는 다음 버튼을 눌러에 따라 값을 설정, 초기 nullComputerPlayer firstPlayerComputerPlayer secondPlayer를 정의한 나는이와 약간의 문제가있어,하지만 선수가 이미 이전에 정의 된대로 나는 오류가 계속.

아무에게도이 말을 다시 쓰기 위해 나를 도와 줄 수 있습니까? 감사.

public static void main(String[] args){ 
     JPanel panel = new JPanel(); 
     JRadioButton button1 = new JRadioButton("Human"); 
     JRadioButton button2 = new JRadioButton("Computer"); 
     panel.add(new JLabel("Who Goes First?")); 
     panel.add(button1); 
     panel.add(button2); 
     ComputerPlayer firstPlayer = null; 
     ComputerPlayer secondPlayer = null; 

     JOptionPane.showMessageDialog(null, panel); 


     if(button1.isSelected()) {  
      ComputerPlayer firstPlayer = new HumanPlayer(); 
      ComputerPlayer secondPlayer = new AIPlayer(); 
     } 

     if(button2.isSelected()) {  
      ComputerPlayer firstPlayer = new AIPlayer(); 
      ComputerPlayer secondPlayer = new HumanPlayer(); 
     } 

     GameLogic logic = new GameLogic(); 

     logic.addPlayer(firstPlayer); 
     logic.addPlayer(secondPlayer); 

     logic.startGame(); 
    } 
+1

"계속 오류가 있습니다."-> 더 구체적으로 말씀해 주시겠습니까? – Stultuske

+0

변수'ComputerPlayer firstPlayer'와'ComputerPlayer secondPlayer'는 이미 메소드에 정의되어 있습니다. – jk1984

답변

1

if 블록의 "ComputerPlayer"를 삭제하십시오. 이 객체를 이미 만들었으므로 다시 할 필요가 없습니다.

if(button1.isSelected()) {  
    firstPlayer = new HumanPlayer(); 
    secondPlayer = new AIPlayer(); 
} 

if(button2.isSelected()) {  
    firstPlayer = new AIPlayer(); 
    secondPlayer = new HumanPlayer(); 
} 
+0

만들기, 예, 신고하는 중입니다. – Stultuske

0
if(button1.isSelected()) {  
     ComputerPlayer firstPlayer = new HumanPlayer(); 
     ComputerPlayer secondPlayer = new AIPlayer(); 
    } 

    if(button2.isSelected()) {  
     ComputerPlayer firstPlayer = new AIPlayer(); 
     ComputerPlayer secondPlayer = new HumanPlayer(); 
    } 

당신은 사용되지 않는이 지역 변수에 값을 할당하고 있습니다. 아무리 당신이 원하는 이러한 방법은 잘못되었습니다.

관련 문제