Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在跳棋中发现僵局?_Java - Fatal编程技术网

Java 如何在跳棋中发现僵局?

Java 如何在跳棋中发现僵局?,java,Java,为了我的学校项目,我正在制作一个跳棋游戏。我已经设法使所有这些都正常工作,直到现在我才意识到有可能出现一个僵局,一名球员无法移动任何棋子。我不确定我是否应该在这里发布我的代码或者其他什么,但是如果我必须的话,请告诉我,我会的。谢谢 你必须有办法分析董事会,了解可能的法律行动(例如,除非棋子被另一个棋子挡住,否则棋子可以向前移动,bishop沿着对角线移动,直到棋子被同一颜色的棋子或敌方棋子挡住,等等;请记住,您必须过滤这些棋子,以避免移动会使您受到限制).我想你已经拥有它了,因为你不能允许玩家非

为了我的学校项目,我正在制作一个跳棋游戏。我已经设法使所有这些都正常工作,直到现在我才意识到有可能出现一个僵局,一名球员无法移动任何棋子。我不确定我是否应该在这里发布我的代码或者其他什么,但是如果我必须的话,请告诉我,我会的。谢谢

你必须有办法分析董事会,了解可能的法律行动(例如,除非棋子被另一个棋子挡住,否则棋子可以向前移动,bishop沿着对角线移动,直到棋子被同一颜色的棋子或敌方棋子挡住,等等;请记住,您必须过滤这些棋子,以避免移动会使您受到限制).我想你已经拥有它了,因为你不能允许玩家非法移动

当你有可能的合法移动列表时,只需检查列表是否为空(没有可能的移动),同时玩家不在检查中(因为在检查中没有任何合法移动意味着处于检查中)。仅此而已

编辑:

刚才我意识到可能会出现僵局

在我看来,你可能忘记了其他一些“不寻常”的国际象棋规则。以下是你可能想看的列表:

  • 材料不足(如果没有足够的棋子来阻挡敌人,同时假设你们两个都不会犯巨大的错误。当一个人陷入这种情况时,它被认为是平局)
  • 禁锢中的城堡规则(如果国王在禁锢中处于禁锢状态,即使在禁锢开始和结束时他都不处于禁锢状态,你也不能建造城堡
  • 典当推广和顺道而行,但这些都是非常明显的规则,你可能已经实施了

这听起来像是一个与Java无关的算法问题。此外,您还没有展示自己的任何研究成果。请发布相关代码片段并大致介绍我们。此外,不要忘记在代码中提供背景信息。“我不确定是否应该在此处发布代码或其他内容”-是的,这通常会有帮助-如果我们知道您已经尝试过的内容,这会容易得多,因为这使我们更容易知道答案的方向