我想知道是否可以将原点的起点移动到网格的左下角。
这是我正在使用的代码:
#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/