使用堆栈遍历 2D 迷宫时跟踪正确的移动列表



所以我正在做一项作业,我完全被难住了。我必须修改其他人的代码,以便使用堆栈来模仿递归并在 2D 迷宫中找到自己的方式。我必须修改程序以显示正确的路径,不包括任何导致或成为死胡同的单元格。

该程序目前的工作方式是,它从您当前的位置获取所有可能的移动,然后将它们推送到西,东,北,南顺序的堆栈中。然后,它将顶部单元格从堆栈中弹出并移动到它。它重复这个过程,直到它遇到一个死胡同,此时它会从堆栈顶部弹出一个较旧的可能位置并跳回它,从那里继续,或者如果它找到终点,它就会停止。

我遇到的问题是,一旦它们从堆栈中弹出,程序就不会保留移动,因此回溯和标记不正确的单元格不是一种选择。

我的问题,我想更多的是寻求建议,我应该尝试采取什么策略来标记不正确的单元格,以便我可以在迷宫的尽头只打印正确的单元格?

如果需要,我可以提供代码,但该程序非常大,由几个.java文件组成。

如果您需要更多信息,请告诉我。我真的只是希望朝着正确的方向前进。

只是为了其他可能偶然发现这一点的人,我最终编写了一个递归算法,当它能够从一个位置找到到达终点的方式时,它会将其标记为正确路径的一部分,移动起始位置,重置迷宫,然后再次运行它,重复直到它到达终点。

最新更新