【发布时间】:2018-10-21 09:37:44
【问题描述】:
这个程序应该找到所有可能的穿过迷宫的方法,并将它得到的最远距离保存在一个全局变量中。相反,它只走一条路然后结束?我猜我没有正确使用递归或其他东西。 $draw_co2 是一个由 0 和 1 组成的数组,其中 1 是路径,0 是墙。我已将 $GLOBALS['route'] 收集的点的输出包含在下面迷宫本身的顶部。根据代码,我希望整个主要的红色分支都是白色的?
我使用的是 else if 而不是 else。如下所述,使用 else 来探索所有分支。
【问题讨论】:
-
您的代码似乎是正确的,我相信正在发生的事情是它正在尽其所能,走到死胡同并且永远不会“转身”。您的代码看起来不会回溯并尝试与我理解的不同的路线。由于您的代码在 if/else 语句中的加权方式,由于具有一定的顺序优先级,它很可能总是以该位置结束。
-
由于 if 语句,我希望代码能够探索两个/所有分支。就像左右都是 1 一样,我希望有 2 个分支可以探索。这仅遍历一条路径?至少我希望它作为替代路径的一部分左右移动一点。显然不是用 ifs 创建分支,我不明白为什么。
-
这是因为您的
elses。从if中删除else以探索所有选项 - 目前它只采用第一个可用选项...