简体   繁体   中英

How to update a game board? c++

I'm trying to make a dungeon crawlesque game and I have this code to create a game board. I'm using 'F' as the finish point and 'P' for the player.

    void Gameboard::CreateGameboard()
{
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
         GameGrid[i][j] = 'x';
        }
    }
    cout << "  0 1 2 3 4 5 6 7 8 9 10" << endl;
    cout << " +---------------------+" << endl;
    for (int i = 0; i < 10; i++)
    {
        cout << " " << "|" << GameGrid[i][0];
        for (int j = 0; j < 10; j++)
        {
            if (i == Spawn[0] && j == Spawn[0])
            {
                GameGrid[0][0] = 'P';
            }
            cout << " " << GameGrid[i][j];
        }
        cout << "|" << endl;
    }
    cout << " +---------------------+" << endl;
}

The problems I'm facing are. 'P' is being placed in the first two slots of the board and unsure why. And how would I update the board with player movement? I have a Player class with x,y position variables and my thought is to increment down/up based on where they're going. Is it required to reprint the whole board after every movement?

With your drawing of the board.

 for (int i = 0; i < 10; i++)
    {
        cout << " " << "|" << ***GameGrid[i][0]***;
        for (int j = 0; j < 10; j++)
        {
            cout << " " << GameGrid[i][j];
        }
        cout << "|" << endl;
    }

You print out the first item of the row, then print the whole row, including the first item again. so each row will have a double up of the first item.

As for your second question, clearing the screen is exactly what you'll have to do. If you're using windows then you can use system("cls"); to 'clear' the console and then redraw. I would recommend putting the board drawing and board creation into different functions.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM