C++中的枚举数组

vmjh9lq9  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(101)

我正在沿着一本关于自学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;
}

我不明白“正方形棋盘”在这个例子中实际上是做什么的。我是一个完全的初学者,所以任何帮助都是非常感谢的。

vnjpjtjt

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网格。Squareenum的类型。因此Square可以具有值PawnRook,就像int可以具有10或88这样的值一样。
所以,假设你想把车放在棋盘的左上角,那么chessBoard[0][0] = Square.Rook就可以了,要把车放在右上角,你需要做chessBoard[0][7] = Square.Rook
注意:决定0是“顶部”而不是7是“顶部”是任意的,就像决定它的行在前,然后列或0是“左”而7是“右”一样。

相关问题