Переменные перезаписываются, когда я помещаю значения в массив - PullRequest
0 голосов
/ 27 ноября 2018

Эта функция должна принимать пользовательские данные и помещать их в объект карты.Ширина и длина сохраняются как переменные в 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.Я не знаю, почему эти переменные меняются.Кажется, что когда я пишу в массив, он перезаписывает переменные.

1 Ответ

0 голосов
/ 27 ноября 2018

Измените строку map1.setPlayers(id, x, y, map1.getNumPlayers()); на map1.setPlayers( x, y, id , map1.getNumPlayers()); , вы просто инвертировали вызов переменной при вызове функции setPlayers()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...