2016-06-23 15 views
-1

私はArrayListにaiプレーヤーを追加するだけでなく、名前を入力するようにユーザーに求めています。残念ながら、下のコードで「追加」という言葉に「記号を見つけることができません」というエラーが表示されています。私はそれが何かを輸入しないという流れに沿っていると仮定していますが、現時点でそれを理解することはできません。ArrayListの問題に追加

package connectfour; 

import java.util.ArrayList; 
import javax.swing.*; 
import userInterface.Connect4Ui; 
import core.Player; 
import core.HumanPlayer; 
import core.AiPlayer; 


/** 
* 
* @author j_ortiz9688 
*/ 

// connect 4 main 
public class ConnectFour { 

    private static ArrayList<Player>player; 
    private static Connect4Ui frame; 

    public static void makePlayers(){ 

     player = new ArrayList<Player>(); 

     String name = JOptionPane.showInputDialog("Enter your name"); 

     HumanPlayer player = new HumanPlayer(name); 


     AiPlayer ai = new AiPlayer("Computer", 0); 

     player.add(player); 
     player.add(ai); 

    } 



    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 

     frame = new Connect4Ui(); 

    } 

} 
+0

あなたは本当にArrayListとHumanPlayer変数を同じ名前にする必要があります。 – TomekK

+0

HumanPlayerはクラスです。 –

答えて

5

あなたはクラスのstatic ArrayListフィールドを隠しArrayListと同じ名前の新しい変数を、(あなたが.add()への呼び出しを削除しても、それはコンパイルされません)を作成しています。ローカルplayer変数またはplayerフィールドの名前を変更する必要があります。例えば

HumanPlayer humanPlayer = new HumanPlayer(name); // Renamed 
    AiPlayer aiPlayer = new AiPlayer("Computer", 0); 

    player.add(humanPlayer); 
    player.add(aiPlayer); 
2

あなたは同じ名前のあなたのArrayListデータメンバーを隠していることをローカル変数HumanPlayer player = new HumanPlayer(name);を定義します。

HumanPlayer human = new HumanPlayer(name); // Here! 
AiPlayer ai = new AiPlayer("Computer", 0); 

player.add(human); // and use it here, of course 
player.add(ai); 
+0

私の代わりに、馬鹿げた間違いがありました、ありがとう、これは今よりずっと意味があります。ありがとうございました。 –