我正在沿着一本关于自学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;
}
我不明白“正方形棋盘”在这个例子中实际上是做什么的。我是一个完全的初学者,所以任何帮助都是非常感谢的。
1条答案
按热度按时间vnjpjtjt1#
<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
的变量,该变量是Square
示例的8 × 8网格。Square
是enum
的类型。因此Square
可以具有值Pawn
或Rook
,就像int
可以具有10或88这样的值一样。所以,假设你想把车放在棋盘的左上角,那么
chessBoard[0][0] = Square.Rook
就可以了,要把车放在右上角,你需要做chessBoard[0][7] = Square.Rook
。注意:决定0是“顶部”而不是7是“顶部”是任意的,就像决定它的行在前,然后列或0是“左”而7是“右”一样。