объявляя "Игроки" после ответа пользователя.Пользователи выбирают сколько игроков.Player это структура - PullRequest
0 голосов
/ 25 октября 2018
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) Как поместить это в отдельныйфункция, но все еще имеют значения, переданные в основной?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете сделать что-то вроде этого:

#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";
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...