我有一个算法,如下所示,以防止玩家选择一个使其生效的移动:
假装移动(通过复制电路板并在复制的电路板上工作)
得到所有合法对手的动作后,移动已被伪造。
如果其中一个合法的招式可以攻击玩家的国王,那么就不能选择最初伪造的招式。
但是,在步骤2(黑体字)中,程序必须检查另一个播放器没有将另一个播放器移动到check中的任何内容这将创建一个无限递归,我不确定如何在算法上避免。人们对这种情况有什么建议?
最佳答案
您可以定义另一个函数,如果玩家的棋子可以移动到对方国王的单元格,则返回true
,否则返回false
。
现在当你假装移动时,为对手调用这个函数。