你会使用哪些数据结构来代表计算机国际象棋程序中的棋盘?
我实际上不会对棋盘进行建模,而是只会对棋子的位置进行建模。你可以为棋盘设置边界。
Piece.x= x position of piece
Piece.y= y position of piece
int[8][8]
0=no piece
1=king
2=queen
3=rook
4=knight
5=bishop
6=pawn
我知道这是一个非常古老的帖子,每次在谷歌搜索国际象棋编程时都会偶然发现它,但我觉得我必须提到,用一维数组(例如chessboard[64])对棋盘进行建模是完全可行的。
我认为这是最简单的棋盘表示方法...当然,这是一种基本的方法。
一维棋盘数组结构比二维数组更有效率吗?(后者需要嵌套循环来访问和操作索引)
还可以使用一个具有超过64个方格的一维数组来表示OffBoard方格,例如chessboard[120](正确初始化数组哨兵和棋盘游戏方格)。
最后,为了完整起见,我再次提到0x88棋盘数组表示法。这是一种相当流行的表示棋盘的方式,也考虑了OffBoard方格。
使用数组可能会很好。如果您想要更方便的“遍历”棋盘的方法,可以轻松构建抽象数据结构实现细节的方法。