C++枚举数组疑问:Square chessBoard[8][8]的作用解析
关于
Square chessBoard[8][8]的通俗解释 先理清楚基础概念,再拆解这句代码:
1. 先看你定义的enum Square
你写的enum Square其实是给棋盘格子的所有可能状态起了「好记的名字」:
Empty=0代表格子是空的,后面的Pawn(兵)、Rook(车)这些会自动依次对应1、2、3...(本质都是整数,但用名字写代码比写数字直观多了)
2. 拆解Square chessBoard[8][8]
这句是创建一个对应国际象棋棋盘的二维数组,逐部分看:
Square:规定了这个数组里每个位置只能存enum Square里的那些状态值(Empty、Pawn、Rook等),就像int arr[5]是存整数的数组,这里是存棋盘格子状态的数组。chessBoard:是这个数组的名字,你可以把它当成整个棋盘的代号,后续操作棋盘都要用到它。[8][8]:对应国际象棋8行8列的布局。第一个[8]代表行数,第二个[8]代表列数。编程里计数从0开始,所以chessBoard[0][0]是棋盘左上角的格子,chessBoard[7][7]是右下角的格子。
3. 结合代码里的赋值理解
代码里chessBoard[0][0] = chessBoard[0][7] = Rook;,就是把第一行最左和最右的两个格子,设置为「车(Rook)」的状态,这正好对应真实国际象棋开局时车的位置。
内容的提问来源于stack exchange,提问作者AShearman
相关产品推荐
相关产品推荐

