我想知道是否可以将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设置在左上角。我一直在这个网站和互联网上搜索,我似乎无法解决这个问题。
答案 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)
答案 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;
}
}