我想知道是否可以将原点的起点移动到网格的左下角。

这是我正在使用的代码:

#include <iostream>

using namespace std;

char **createBoard(int n, int m); // Býr til tvívítt kvikt fylki og skilar því til baka
void initiaizeBoard(char **p, int n, int m); // Upphafsstillum allt með '.'
void printBoard(int n, int m, char **p); // Prentum út leikborðið


int main()
{
    int rows, columns;
    int xhnit;
    int yhnit;

    cin >> rows >> columns >> xhnit >> yhnit;


    char **board = createBoard(rows, columns);

    initiaizeBoard(board, rows, columns);

    board[xhnit][yhnit] = player;
    printBoard(rows, columns, board);

    return 0;
}

char **createBoard(int n, int m)
{
    char **p = new char*[n];
    for (int i = 0; i < n; i++)
    {
        p[i] = new char[m];
    }
    return p;
}

void initiaizeBoard(char **p, int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            p[i][j] = '.';
        }
    }
}



void printBoard(int n, int m, char** p)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
           cout << p[i][j];
        }
        cout << endl;
    }

}


对于输入“ 10 10 5 6”,我的输出如下:

..........
..........
..........
..........
..........
......X...
..........
..........
..........
..........


现在,从输出中可以看到,起源设置在左上角。我一直在这个站点和整个互联网上进行搜索,但似乎无法弄清楚。

最佳答案

您可以将所有内容一视同仁,而只需按相反的顺序打印行:

void printBoard(int n, int m, char** p) {
    for (int i = n-1; i > -1; i--) { // Print in reverse order!
        for (int j = 0; j < m; j++) {
           cout << p[i][j];
        }
        cout << endl;
    }
}


这是一个实时示例:http://ideone.com/GJVw8M

关于c++ - 选择起点的起点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33019175/

10-09 03:11