2016-06-23 66 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

你正在创建具有相同名称的新变量作为ArrayList,隐藏在类中的静态ArrayList场(如果去掉调用.add()它甚至不会编译)。您需要重命名本地player变量或player字段。

例如:

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

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

你定义一个局部变量HumanPlayer player = new HumanPlayer(name);ArrayList数据成员的同名。只需给它一个不同的名称,你应该可以:

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

哎呀,代表我的愚蠢的错误,谢谢,这使得现在更有意义。谢谢。 –