我正在开发井字游戏,我需要算法来检查游戏何时结束(以及谁获胜)。在3x3游戏中,我将检查每个可能的获胜情况(有8种能力)。但是在7x7(连续4个标志,需要连续或列或对角线)中,有很多可能的获胜方式。
虽然一种非常基本的方法是查看每个单元格在各个方向上的运行,但是这里有一种方法只对单个“行”中的一个单元格进行一次检查。 “线”是可能会赢的行,列或对角线,例如在Vegas老虎机中:)
如果每个玩家都使用bitboard,则可以使用移位操作来测试棋盘的胜利。
循环所有位置。对于每个位置,请检查对角线,右下,右下(始终包括字段本身)的四个字段。进行适当的检查,以避免在检查不存在的字段时炸毁您的应用程序。
简单。对所有行,列,进行4 for
循环,增加对角线,减少对角线。在每一个中,测试是否有4个连续的片段。