0

音乐椅。音乐椅是一款儿童游戏,玩家在播放音乐的同时绕着一组椅子走动。当音乐停止时,每个人都必须坐下。但是,椅子比人少一张,所以有人被排除在外。而且,确实,那个人不在游戏中。一把椅子被移走。游戏又开始了;别人出去了。这种情况一直持续到只剩下一名玩家,即获胜者。

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

这是我的代码

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;
    }


}
4

2 回答 2

1

您没有将参数存储在数组中。如果您的问题是如何做到这一点,那么您应该:

  • 初始化players数组。
  • 对于每个参数,您必须创建一个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.
    //...
}

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

于 2012-10-02T00:29:39.400 回答
1

我认为您需要更新代码以创建新玩家并维护数组中的引用...

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());
    }
}
于 2012-10-02T00:30:57.043 回答