接受每个玩家的名字

时间:2015-12-24 14:32:29

标签: c++

我正在尝试制作游戏。在节目开始时,我想接受玩家的数量和他们的名字。我试图接受使用2D数组,但它没有成功。有没有办法接受球员的数量和他们的名字?我应该使用结构吗?请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果您不想将任何额外数据(如分数)与每个玩家相关联,则单维(1D)string数组可以正常工作。但是如果每个玩家都有额外的数据,那么我建议使用结构并创建一个单维(1D)struct数组。

例如:

typedef struct {
    string name;
    int score;
} Player;

要输入玩家数量和凭据,您可以让用户输入玩家数量,然后创建一个Player数组,您可以循环浏览每个元素以输入名称。像:

int numPlayers = 0;
cin >> numPlayers;

Player player[numPlayers];
for (int i = 0; i < numPlayers; i++) {
    cin >> player[i].name;
}

修改:如果您想拥有非固定数量的玩家,请使用向量。如果你想要固定数量的玩家,请使用数组。

答案 1 :(得分:1)

使用矢量!

int player_cnt;
cin >> player_cnt;

vector<string> player_names(player_cnt);
for (int i = 0; i < player_cnt; i++)
    cin >> player_names[i];

答案 2 :(得分:0)

您通常不需要2D数组,您可以使用std::vector<char>来保存玩家名称并使用向量上的位置来确定玩家ID,以备不时之需。

当然结构也是一个选项,你也可以在一个向量中保存结构的实例。这样你就可以在同一个数组中存储播放器的其他信息。