国际象棋 - 防止检查时避免无限递归

时间:2017-11-14 09:45:09

标签: algorithm recursion artificial-intelligence game-engine chess

我有一个算法如下,以防止玩家选择一个移动来检查:

  1. 假动作(通过复制棋盘并处理复制的棋盘)
  2. 移动被伪造后,
  3. 获得所有合法对手移动
  4. 如果其中一个合法动作可以攻击玩家的国王,则无法选择最初伪造的动作。
  5. 但是,在步骤2(粗体)中,程序必须检查其他玩家所做的事情是否不会让其他玩家进行检查。这会创建一个无限递归,我不确定在算法上如何避免。人们对这种情况有什么建议?

1 个答案:

答案 0 :(得分:2)

如果玩家的棋子可以移动到对手国王的单元格,则可以定义另一个返回true的函数,否则false

现在,当你假动作时,为对手调用此功能。

相关问题