Эта функция должна принимать пользовательские данные и помещать их в объект карты.Ширина и длина сохраняются как переменные в Map, а id, x и y хранятся в массиве.
void Game::createMap()
{
Map map1;
int width;
int length;
int id;
int x;
int y;
string answer = "1";
cout << "Enter a map width: " << endl;
cin >> width;
cout << "Enter a map length: " << endl;
cin >> length;
map1.setWidth(width);
map1.setLength(length);
while(answer != "2")
{
cout << "Would you like to add a player? 1) Yes 2) No" << endl;
cin >> answer;
switch (stoi(answer))
{
case 1:
cout << "Choose player id: " << endl;
cin >> id;
cout << "Enter an x coordinate: " << endl;
cin >> x;
cout << "Enter a y coordinate: " << endl;
cin >> y;
map1.setPlayers(id, x, y, map1.getNumPlayers());
break;
case 2:
break;
default:
cout << "Enter a valid input" << endl;
break;
}
}
mapVector.push_back(map1);
}
Это функция, которая помещает пользовательские входные данные в массив:
void Map::setPlayers(int x, int y, int player, int n)
{
position[n][0] = player;
position[n][1] = x;
position[n][2] = y;
cout << width << endl;
cout << length;
}
По какой-то причине после вызова функции setPlayers мои переменные width и length устанавливаются в значения, полученные от пользователя для id и x.Я не знаю, почему эти переменные меняются.Кажется, что когда я пишу в массив, он перезаписывает переменные.