我正在阅读一本关于自学 C++ 的书,其中有一个关于使用枚举和数组创建棋盘布局的问题。 查看他们的解决方案,他们调用枚举来声明棋盘上任何给定方块的潜在状态。但是我不完全明白那之后发生了什么。他们的代码如下所示:
int main()
{
enum Square
{
Empty = 0,
Pawn,
Rook,
Knight,
Bishop,
King,
Queen
};
Square chessBoard[8][8];
chessBoard[0][0] = chessBoard[0][7] = Rook;
//Follow this pattern to initialise the rest of the pieces
return 0;
}
我不明白“Square chessBoard”在这种情况下实际上在做什么。我是这方面的初学者,所以非常感谢任何帮助。
<type> <variable>[dim1][dim2]
创建一个 <type>
类型的二维数组,具有 dim1
行和 dim2
列。例如,int board[10][14]
创建具有 10 行和 14 列的网格,每列包含一个整数,并将该网格命名为 board
。然后,您可以执行 board[1][3] = 17
之类的操作,将第 2 行(0 索引)、第 4 列的值设置为 17。
因此,
Square chessBoard[8][8]
设置了一个名为 chessBoard
的变量,它是一个 8 x 8 的 Square
实例网格。而Square
是enum
的类型。所以 Square
可以有值 Pawn
或 Rook
,就像 int
可以有 10 或 88 这样的值。
所以,假设您想在该板的左上角放置一个车。然后
chessBoard[0][0] = Square.Rook
就可以了。把它放在右上角你会做chessBoard[0][7] = Square.Rook
.
注意:决定 0 是“顶部”而不是 7 是“顶部”是任意的,就像决定先行然后列或 0 是“左”而 7 是“右”一样。