根据给定的数量创建不同的玩家(物体)

时间:2016-05-06 19:57:04

标签: android

我正在开始新的纸牌游戏。这将是非常基础的,但即使我不是编程新手,我也没有太多经验。

然而,这个纸牌游戏应该开始向用户询问将要玩的数量的玩家,并且我正在考虑制作玩家 {{1} }为了创建可以拥有Class(另一个对象)和Card的玩家。

但是当我从name创建对象时,我必须指定class名称,所以我应该怎么做呢?在这种情况下,我不知道有多少玩家(所以对象)我将不得不创建?

考虑一下:

玩家类

object

修改

当我们创建public Player { private Card mCard; private String mName } 时,我们会给它Object

name

但是没有办法(至少我知道)动态创建具有不同名称的对象。

那么,如果我不知道名字,我怎么能创建一个对象(一个玩家)?

示例:

如果我有13个玩家,我该如何创建13个对象并停止。没有其他玩家对象。我之前说过,我可以尝试用这种方式制作一些可怕的东西:

Player objectName = new Player();

但它真的很难看,我真的不认为这是它应该的样子。那么如何创建每个具有不同名称的确切数量的对象?

1 个答案:

答案 0 :(得分:0)

修改

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

但阵列有一些限制。最大的是你不能改变大小。通常最好使用List而不是数组。

 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
}