0

ミュージカルチェア。Musical Chairs は、音楽が流れている間、プレーヤーが椅子のグループを歩き回る子供向けゲームです。音楽が止まると、全員が座らなければなりません。でも、人より椅子が1つ少ないので、取り残される人が出てきます。そして、確かに、その人はゲームから外れています。椅子が取り除かれます。そして、ゲームが再びプレイされます。他の誰かが出て行く。これは、勝者が 1 人になるまで続きます。

コマンドライン引数をプレーヤーに保存する際に問題があります[]

ここに私のコードがあります

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 に答える