C# 在';我走到了死胡同
在迷宫中前进相当容易,但我似乎不知道如何在遇到死胡同时,在迷宫中后退尝试新路线,而不会后退太远?通过保留一堆以前的方向决定来使用。通过保留一堆以前的方向决定来使用。最简单的(实现)算法是只保留一堆你去过的地方,以及你从每个地方走的路线,除非回溯给你这些信息 要返回,只需从堆栈中弹出旧位置并检查该位置的更多出口,直到找到具有未测试出口的旧位置 通过每次以相同的顺序持续测试出口,如果您知道回溯到某个位置是从下降开始的(即上次您在旧位置时,您下降了),那么您只需在下降后选择下一个方向 我不完全确定你说的返回太远是什么意思,我想你会想回到之前你没有测试过的路线,这不是你想要的吗 请注意,除非您尝试跟踪从起点到当前位置的路径,并在尝试查找新路线时避免这些方块,否则您可能最终会进入圆圈,这最终会使堆栈过大 一个简单的递归方法可以很容易地做到这一点,它可以标记它所采用的路径,并且从不进入被标记的区域 此外,如果你的东西在迷宫中移动比仅仅能够移动并撞(停)墙稍微聪明一点,因为它可以从当前点看到所有方向,那么我有其他算法可能会有所帮助。最简单(实现)的算法就是只保留一堆你去过的位置,以及你从每一条路线走的路线,除非回溯给你这些信息 要返回,只需从堆栈中弹出旧位置并检查该位置的更多出口,直到找到具有未测试出口的旧位置 通过每次以相同的顺序持续测试出口,如果您知道回溯到某个位置是从下降开始的(即上次您在旧位置时,您下降了),那么您只需在下降后选择下一个方向 我不完全确定你说的返回太远是什么意思,我想你会想回到之前你没有测试过的路线,这不是你想要的吗 请注意,除非您尝试跟踪从起点到当前位置的路径,并在尝试查找新路线时避免这些方块,否则您可能最终会进入圆圈,这最终会使堆栈过大 一个简单的递归方法可以很容易地做到这一点,它可以标记它所采用的路径,并且从不进入被标记的区域C# 在';我走到了死胡同,c#,artificial-intelligence,maze,C#,Artificial Intelligence,Maze,在迷宫中前进相当容易,但我似乎不知道如何在遇到死胡同时,在迷宫中后退尝试新路线,而不会后退太远?通过保留一堆以前的方向决定来使用。通过保留一堆以前的方向决定来使用。最简单的(实现)算法是只保留一堆你去过的地方,以及你从每个地方走的路线,除非回溯给你这些信息 要返回,只需从堆栈中弹出旧位置并检查该位置的更多出口,直到找到具有未测试出口的旧位置 通过每次以相同的顺序持续测试出口,如果您知道回溯到某个位置是从下降开始的(即上次您在旧位置时,您下降了),那么您只需在下降后选择下一个方向 我不完全确定你说
此外,如果你的东西在迷宫中移动比只能够移动并撞(停)墙稍微聪明一点,因为它可以从当前点看到所有方向,我有其他算法可能会有所帮助。埃里克·利珀特(Eric Lippert)写了一系列关于创建,哪个可能更有效。埃里克·利珀特(Eric Lippert)写了一系列关于创建一个可能更有效的迷宫的文章。迷宫的想法不是你不知道整个布局吗?A*在这种情况下仍然有效吗?迷宫的想法不是你不知道整个布局吗?A*在这种情况下仍然有效吗?