Java 将玩家名称添加到Arraylist
我是java新手,很难为一个简单的游戏将玩家(1-4)添加到arraylist中。我的想法是,该程序通过询问用户(来自同一台计算机,非常基本)有多少人将在游戏中开始,然后输入姓名继续。完成后,将显示主菜单。我已经重写了以下几个小时,只是无法理解。我意识到playerTurn可能在这段代码中没有位置,但我觉得我已经尝试过了 我能想到的一切。请帮忙Java 将玩家名称添加到Arraylist,java,arraylist,user-input,Java,Arraylist,User Input,我是java新手,很难为一个简单的游戏将玩家(1-4)添加到arraylist中。我的想法是,该程序通过询问用户(来自同一台计算机,非常基本)有多少人将在游戏中开始,然后输入姓名继续。完成后,将显示主菜单。我已经重写了以下几个小时,只是无法理解。我意识到playerTurn可能在这段代码中没有位置,但我觉得我已经尝试过了 我能想到的一切。请帮忙 扫描仪输入=新扫描仪(System.in); 公共整数回合;//5-30 public int playerTurn;//选择要玩的游戏数量。1-4 p
扫描仪输入=新扫描仪(System.in);
公共整数回合;//5-30
public int playerTurn;//选择要玩的游戏数量。1-4
public ArrayList players=new ArrayList();
公共游戏(){
System.out.println(“欢迎来到农场!请输入您的姓名,输入今天将有多少人(1-4名玩家)。完成后,请输入菜单开始”);
字符串名称=input.next();
while(true){
对于(int-playerTurn=0;playerTurn<4;playerTurn++){
newPlayer(names);//调用addplayer方法
}
}
}
public void newPlayer(字符串newPlayer){
players.add(newPlayer(newPlayer));
}
你看起来很困惑
首先,你需要了解有多少玩家将参加比赛。您可以这样做,但出于某种原因,您将其分配给名称
,然后使用它创建一个播放器
,这是没有意义的。然后你必须根据数字做一个循环,在每次迭代中,你需要一个名字并创建一个玩家
public static void main() {
int numOfPlayers = getNumOfPlayers();
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter the number of players");
int numOfPlayers = reader.nextInt();
if (numOfPlayers > 4) // display error message - exit
for (int i = 0; i < numOfPlayers; ++i) {
String playerName = reader.nextLine();
players.add(new Player(playerName));
}
reader.close();
}
publicstaticvoidmain(){
int numOfPlayers=getNumOfPlayers();
扫描仪阅读器=新扫描仪(System.in);//从System.in读取
System.out.println(“输入玩家数量”);
int numOfPlayers=reader.nextInt();
if(numOfPlayers>4)//显示错误消息-退出
for(int i=0;i
您的类构造函数有一个无限循环(while(true)
),因此它只会不断添加Player
实例,直到您终止程序
public class Game {
private Scanner input = new Scanner(System.in); // Scanner reading from System.in
private int rounds; // 5-30
private int playerAmount; // Indicating how many players take part
private ArrayList<Player> players = new ArrayList<>(); // Storing player instances
public Game() {
System.out.println("Welcome to The Farm! Please enter how many will be playing today (1-4 players) by entering your names. When finished please enter menu to begin");
for(int i = 0; i < 4; i++) {
String name = input.readLine();
if (name.equals("menu") || players.size() >= 4) {
break; // User entered menu or the there are already 4 players in the ArrayList -> break out of the for loop
}
newPlayer(name); // New player gets added if the if-condition above isn't executed
}
playerAmount = players.size();
}
}
公共类游戏{
专用扫描仪输入=新扫描仪(System.in);//扫描仪从System.in读取
私有整数回合;//5-30
private int playerAmount;//表示有多少玩家参与
private ArrayList players=new ArrayList();//存储播放器实例
公共游戏(){
System.out.println(“欢迎来到农场!请输入您的姓名,输入今天将有多少人(1-4名玩家)。完成后,请输入菜单开始”);
对于(int i=0;i<4;i++){
字符串名称=input.readLine();
if(name.equals(“菜单”)| | players.size()>=4){
break;//用户输入的菜单或ArrayList中已有4名玩家->退出for循环
}
newPlayer(name);//如果没有执行上述if条件,则会添加新的播放器
}
playerAmount=players.size();
}
}
这样,当您实例化游戏类时,将提示用户输入玩家名称,除非输入等于“menu”
或达到最大玩家数量,否则for循环将仅执行4次。
最后,ArrayList的大小决定了输入了多少名字,从而决定了有多少玩家在玩。你的newPlayer方法在哪里?public void newPlayer(String newPlayer){players.add(new Player(newPlayer));}请将此添加到问题中的代码中。最理想的情况是,任何人都应该能够执行您的代码来重现您描述的行为。我明白了,对不起!刚刚添加的。我很困惑!我明白你的意思,我只是想弄清楚,玩家的数量是否可以由输入的名字数量决定。也许我可以在选择了多少玩家后询问他们的名字。你也可以这样做,你只需要拆分字符串。例如,如果您询问姓名,用户输入:“name1,name2,name3”,您可以拆分它(names.split(“,”),获得数组的大小,这是您的玩家数量