2017-11-24 4 views
-1

Ich erstelle ein Spiel für eine Universität Aufgabe und eines der Kriterien ist, dass das Programm fragt, wer zuerst geht.Wer sollte zuerst gehen? Statische Variable Ausgabe

Ich habe ein wenig Mühe mit diesem, wie ich ComputerPlayer firstPlayer und ComputerPlayer secondPlayer zunächst als null definiert haben, dann setzen Sie den Wert auf einen Knopf drücken basiert, aber ich erhalte eine Fehlermeldung, da die Spieler bereits vorher definiert sind.

Kann mir jemand helfen, dies neu zu formulieren, damit es funktioniert? Vielen Dank.

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

"Ich bekomme immer Fehler" -> könnten Sie genauer darüber sein? – Stultuske

+0

Die Variablen 'ComputerPlayer firstPlayer' und' ComputerPlayer secondPlayer' sind bereits in der Methode definiert. – jk1984

Antwort

1

"ComputerPlayer" in if-Blöcken löschen. Sie erstellen dieses Objekt bereits, also brauchen Sie es nicht noch einmal.

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

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

erstellen, ja, es wird deklariert – Stultuske

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

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

Sie sind Werte, die diese lokalen Variablen zuweisen, die nicht verwendet werden. Egal, was Sie tun wollen, diese Methoden sind falsch.

Verwandte Themen