Java 在数组类中存储命令行参数

Java 在数组类中存储命令行参数,java,command-line-arguments,Java,Command Line Arguments,音乐椅。音乐椅是一种儿童游戏,玩家在播放音乐的同时绕着一组椅子走。音乐停止时,每个人都必须坐下。但是,椅子比人少了一把,所以有人被遗漏了。事实上,这个人已经出局了。一把椅子被移走了。游戏又开始了;有人出去了。这种情况一直持续到只剩下一名玩家,即获胜者 我在播放器[]中存储命令行参数时遇到问题 这是我的密码 import java.util.*; public class MusicalChairs { Player [] players; Random r = new Rand

音乐椅。音乐椅是一种儿童游戏,玩家在播放音乐的同时绕着一组椅子走。音乐停止时,每个人都必须坐下。但是,椅子比人少了一把,所以有人被遗漏了。事实上,这个人已经出局了。一把椅子被移走了。游戏又开始了;有人出去了。这种情况一直持续到只剩下一名玩家,即获胜者

我在播放器[]中存储命令行参数时遇到问题

这是我的密码

import java.util.*;
public class MusicalChairs {

    Player [] players;
    Random r = new Random();
    public static void main(String[] args){


      MusicalChairs mc = new MusicalChairs();



          mc.setUpGame(args);


        }

        public void setUpGame(String [] p){
            System.out.println("This is how we stand.......");

           for (int i = 0; i < p.length; i++){

            System.out.println(p[i]+" is "+ Player.Status.IN);

           }



        }

        public void showStatus(){


        }

        public void winner(){

            System.out.println("is the winner");
        }

    }

class Player{
    enum Status{IN,OUT};
    private String name;
    private Status status;

   public Player(String n){
       name=n;
   }

   public String getName(){
       return name;
   }

   public void setStatus(Status s){
       status=s;
   }

   public Status getStatus(){
       return status;
   }


    public String toString(){
      String ret = name;
      if(status==Status.IN){
          ret="IN ";
      }
      else{
          ret="OUT ";
      }
        return ret;
    }


}
import java.util.*;
公共课音乐椅{
玩家[]玩家;
随机r=新随机();
公共静态void main(字符串[]args){
MusicalChairs mc=新的MusicalChairs();
mc.setUpGame(args);
}
公共游戏(字符串[]p){
System.out.println(“这就是我们的立场……”);
for(int i=0;i
您没有在数组中存储参数。如果你的问题是如何做,那么你应该:

  • 初始化
    播放器
    数组
  • 对于每个参数,必须创建一个
    Player
    对象并将其存储在数组中
  • 使用程序中的数据
可以这样做:

public void setUpGame(String [] p) {
    System.out.println("This is how we stand.......");
    //Initialize the `players` array.
    players = new Player[p.length];
    for (int i = 0; i < p.length; i++){
        System.out.println(p[i]+" is "+ Player.Status.IN);
        //For each argument, you must create a `Player` object and store it in the array.
        players[i] = new Player(p[i]);
        players[i].setStatus(Status.IN);
    }
    //Once your array is filled, use the data in your program.
    //...
}
publicsvoidsetupgame(String[]p){
System.out.println(“这就是我们的立场……”);
//初始化“players”数组。
玩家=新玩家[p.length];
for(int i=0;i

问题仍然悬而未决:您的具体问题是什么?

我认为您需要更新代码以创建新玩家并在阵列中维护引用

public void setUpGame(String [] p){
    System.out.println("This is how we stand.......");

    // You may want to check for a 0 number of players...
    players = new Player[p.length];

    for (int i = 0; i < p.length; i++){
        players[i] = new Player(p[i]);
        players[i].setStatus(Player.Status.IN);
        System.out.println(players[i].getName()+" is "+ players[i].getStatus());
    }
}
publicsvoidsetupgame(String[]p){
System.out.println(“这就是我们的立场……”);
//您可能需要检查0个玩家。。。
玩家=新玩家[p.length];
for(int i=0;i
您没有在数组中存储参数。你的具体问题是什么?+1先告诉我;)-你可能还想设置玩家状态(但这只是我吹毛求疵的原因)@PollyPoll你能帮我一个忙吗?如果这些答案有帮助,你能把Luggi的答案标记为已接受(问题旁边的绿色勾号),因为他先发布;)