首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >国际象棋-在防止检查时避免无限回溯

国际象棋-在防止检查时避免无限回溯
EN

Stack Overflow用户
提问于 2017-11-14 09:45:09
回答 1查看 249关注 0票数 1

我有如下算法来阻止玩家选择一个动作来阻止它的发生:

  1. 伪造移动(通过复制板和工作复制板)
  2. 得到所有的合法对手移动后,这一举动是伪造的。
  3. 如果其中一个合法动作可以攻击玩家的国王,那么就不能选择最初伪造的移动。

但是,在步骤2(粗体)中,程序必须检查其他玩家没有移动到检查中的任何内容。这就产生了一个无限递归,我不确定算法上如何避免。对于这种情况,人们有什么建议?

EN

Stack Overflow用户

发布于 2017-11-14 09:55:31

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

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

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47282365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档