选择Origin的起点?

时间:2015-10-08 14:49:51

标签: c++ grid

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

这是我正在使用的代码:

#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...
..........
..........
..........
..........

现在,从输出中可以看到Origins设置在左上角。我一直在这个网站和互联网上搜索,我似乎无法解决这个问题。

3 个答案:

答案 0 :(得分:3)

在某种程度上,在打印数组之前,左上角和左下角只是任意区别。在分配数组元素之前,它们实际上没有物理位置。因此,为了移动原点,您可以从头到尾打印行。

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

}

答案 1 :(得分:1)

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

flush

以下是一个实例:http://ideone.com/GJVw8M

答案 2 :(得分:0)

我可能误解了这个问题,但这只是输出显示需要改变吗?

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

}