3.6.2 创建多维数组
程序做的第一件事情是为井字棋游戏棋盘声明和初始化一个数组
char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},
{' ', 'X', 'X'},
{'X', 'O', 'O'} };
代码声明了一个3×3(因为ROWS和COLUMNS都为3)的二维字符数组,并初始化了所有元素。
提示
可以只声明而不初始化多维数组。如下例所示:
char chessBoard[8][8];
上面的代码声明了一个8×8的二维字符数组chessBoard。另外,多维数组的每维大小不一定要一样。下面用单个字符表示游戏地图的声明是完全合法的:
char map[12][20];
3.6.3 多维数组的索引
程序接下来做的是显示井字棋游戏的棋盘。但是在深入其细节之前,先介绍索引单个数组元素的方法。为数组的每一维提供一个值可以索引多维数组中的单个元素。在把数组中的空格替换成X时就使用了这种方法:
board[1][0] = 'X';
上面的代码将字符X赋给元素board[1][0](原本是' ')。这步操作之后,程序以之前同样的方式显示了井字棋游戏的棋盘。
for (int i = 0; i < ROWS; ++i)
{
for (int j = 0; j < COLUMNS; ++j)
{
cout << board[i][j];
}
cout << endl;
}
通过一对嵌套for循环,程序遍历了整个二维数组,并显示字符元素,形成了井字棋游戏的棋盘。