我正在用C ++制作一个 Reversi 游戏,但是一旦玩家将棋子放在棋盘上,我就无法弄清楚如何检查连续的敌人棋盘碎片。
电路板是一个8x8二维数组,其值为0,-1或1.
ApplyMove 功能只会将当前玩家的棋子放在棋盘上,并检查是否有任何方向的敌人棋子。然后它将朝那个方向翻转所有碎片。
我的功能将包含以下参数:
void ApplyMove(char board[BOARD_SIZE][BOARD_SIZE], int row, int col, char currentPlayer)
我希望程序使用循环从播放器放置的片段开始迭代所有8个可能的方向。如果没有一堆ifs和elses,如何以最简单的方式实现这一目标?
答案 0 :(得分:0)
让我感到很简单的一种方法是使用取值为1,0,-1的变量xoffset
和yoffset
。对这些变量的值使用for
循环,然后使用while
循环来跟踪连续的部分。