接受每位玩家的名字

Accepting Name for each Player

本文关键字:玩家      更新时间:2023-10-16

我正在尝试创建一个游戏。在节目的开头,我想接受玩家的数量和他们的名字。我试着接受使用2D阵列,但效果并不好。有没有办法接受玩家的数量和他们的名字?我应该使用结构吗?请帮帮我。

使用向量!

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

如果您不想将分数等任何额外数据与每个玩家关联,则一维(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;
}

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

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

当然,结构也是一个选项,您也可以将结构的实例保存在向量中。这样你就可以在同一个数组中存储玩家的附加信息。