根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体

declaring "Players" upon user answer. Users choose how many players. Player is a struct

本文关键字:用户 播放器 结构体 玩家 Players 声明 选择      更新时间:2023-10-16
struct Player {
int money=1500;
int position=1;
//Position positionn;
//int number;  // number of player
bool eliminated =false;
};

我主要有这个:

cout <<"Enter the number of players:";
cin >> numOfPlayers;
//between 2-8 ? how
for (int i=0; i<numOfPlayers; i++)
{
Player player[i]; 
}

1(如何存储for循环中的值?
2(如何将其放在单独的函数中,但仍将值传递到 main 中?

你可以做这样的事情:

#include <iostream>
#include <vector>
#include "Player.hpp" // Your header file for Player struct.
int main()
{
std::cout << "Enter player quantity: ";
unsigned int quantity;
std::cin >> quantity;
std::vector<Player> game_players(quantity);
//...
return EXIT_SUCCESS;
}

有关std::vector,请参阅构造函数。

编辑 1 - 动态分配
如果不允许使用std::vector或必须使用数组,则一种方法如下:

int main()
{
std::cout << "Enter player quantity: ";
unsigned int quantity_of_players;
std::cin >> quantity_of_players;
Player *  p_players = new Player[quantity_of_players];
//...
delete [] p_players;
return 0;
}

上面的代码片段在动态内存(又名堆(中分配播放器的容器,因为编译时的数量是未知的。 在返回到操作系统之前删除内存。

编辑 2:传递玩家 您将使用引用传递玩家
的容器:

void Print_Player_Info(const std::vector<Player>& players)
{
for (unsigned int i = 0; i < players.size(); ++i)
{
std::cout << "Player " << i << ":n";
std::cout << "    money: " << players[i].money << "n";
std::cout << "n";
}
}