我正在开发井字游戏,我需要算法来检查游戏何时结束(以及谁获胜)。在3x3游戏中,我将检查每个可能的获胜情况(有8种能力)。但是在7x7中(需要连续4个标志,连续或成对,或对角线)有很多可能的获胜方式。
虽然一种非常基本的方法是查看每个单元格各个方向的运行情况,但是这里有一种方法只检查一次单个“行”中的一个单元格。“线”是可能会赢的行,列或对角线,例如在Vegas老虎机中:)
重要编辑: 如果单元格既不包含P1也不包含P2,则将计数器重置为0(doh!)。我省略了这个琐碎但必需的步骤。否则“ 11-11”将被视为获胜。
可以在给定每次迭代的起点和行/列偏移的情况下遍历“线”(例如,从NW到SE的最长对角线从(0,0)开始并前进(1,1))。长度小于4的对角线当然可以避免完全检查。
快乐的编码。