2016-05-06 2 views
1

私は新しいカードゲームを開始します。それは非常に基本的ですが、私はプログラミングには新しくないが、私はそれについて多くの経験を持っていません。与えられた金額に応じて異なるプレイヤー(オブジェクト)を作成する

しかし、このカードゲームはユーザーに再生されますプレイヤーのを求め始めるべき、と私はCard(別のものを持つことができる選手を作成するためにプレーヤーClassを作ることを考えていますオブジェクト)とnameです。

しかし、私はclassからオブジェクトを作成するとき、私はそう、私はこのケースでそれを行う必要がありますどのように私は私が作成する必要がありますどのように多くの選手(そのオブジェクト)を知らない、object名を指定する必要がありますか?

プレーヤークラス

public Player { 
    private Card mCard; 
    private String mName 
} 

EDIT:

我々はObjectを作成するとき、我々はそれをnameを与える:

Player objectName = new Player(); 

があります考えてみましょうしかし、動的に別の名前のオブジェクトを作成する方法はありません(少なくとも私が知っている限り)。

名前がわからない場合は、どうすればオブジェクト(プレーヤー)を作成できますか?

例:私は13人の選手がいる場合は

は、どのように私は13個のオブジェクトとSTOPを作成してください。他のPlayerオブジェクトはありません。私は恐ろしい何かこのよう作ってみることができる前に私が言った:

if (playersAmount > 5){ 
    Player player5 = new Player(); 
} else if (playersAmount > 6){ 
    Player player6 = new Player(); 
} else if (playersAmount > 7){ 
    Player player7 = new Player(); 
} [...] 

をしかし、それは本当に醜いだ、と私は本当にこれは、することになっています方法だとは思いません。だからどのように私はそれぞれ別の名前のオブジェクトの正確な量を作成することができますか?

+0

プレーヤーを格納するために 'List'または' Array'を使用してください。 – cyroxis

+0

既にそれについてですが、それからメソッドを取得する方法はありますか? – FET

+0

どういう意味ですか?あなたが立ち往生したら、それを試して、最小限の完全な例を投稿してください。 – cyroxis

答えて

0

EDIT

You don't know how many variables you need 
Player p1 = new Player(); 
Player p2 = new Player(); 
... // More players 

は、アレイは、その問題を解決するために正確に作成されます。

int n = // set to number of players 
Player[] players = new Player[n]; 
for (int i = 0; i < n; i++) { 
    players[i] = new Player(); 
} 
players[0] // 1st player 
players[1] // 2nd player 
players[2] // 3rd player 
players[n - 1] // nth player 

しかし、配列にはいくつかの制限があります。あなたがサイズを変えることができない最大のものです。配列の代わりにリストを使用する方が一般的に適しています。

int n = //set to number of players 
List<Player> players = new ArrayList<>(); // Array list has an array inside but handles resizing for you. 
for (int i = 0; i < n; i++) { 
    players.add(new Player()); 
} 

players.get(0); // 1st player 
players.get(1); // 2nd plyaer 

リストまたは配列も優れています。すべてのプレーヤーでメソッドfoo()を呼び出す必要があるとしましょう。

// The old way 
p1.foo(); 
p2.foo(); 
p3.foo(); 
... // Getting tired of typing yet? 

With a list 
List<Player> players = new ArrayList<>(); 
// Add some players 

for (Player player : players) { 
    player.foo(); // Call if once for each player 
} 
+0

質問のセクションに書いたことを理解してください; – FET

+0

質問をよくしてください;)あなたは何をしようとしているのかを説明しておらず、すべての試みを助けてください。そして、あなた自身でそれを本当に解決しようとしたことさえありません。私はあなたの質問を低品質として報告するのではなく、あなたを手伝っています。 – cyroxis

+0

ありがとうございました!すぐに書き直してください! – FET

関連する問題