设计最短路径算法
Designing a shortest path algorithm
我有一张这样的 5x5 地图:
**C** - is where I am(random)
**.** - is a passable tile
**X** - is not a passable tile
**D** - is destination.
我的问题是当我无法水平或垂直通过磁贴时如何进行算法。例如我需要向上移动两块瓷砖,但我不能垂直通过瓷砖,所以我有两个选择:向左走或向右走然后向上走。
但是,其中一个可能会失败,我将不得不退后几步并尝试另一条路线。不知道怎么合乎逻辑。
谢谢。
你需要了解回溯,请查看下方link http://www.thegeekstuff.com/2014/12/backtracking-example/
此外,反向跟踪是一种通过在前进时将其推入堆栈来跟踪路径的方式,当您必须返回时,只需从堆栈中弹出即可。
我有一张这样的 5x5 地图:
**C** - is where I am(random)
**.** - is a passable tile
**X** - is not a passable tile
**D** - is destination.
我的问题是当我无法水平或垂直通过磁贴时如何进行算法。例如我需要向上移动两块瓷砖,但我不能垂直通过瓷砖,所以我有两个选择:向左走或向右走然后向上走。
但是,其中一个可能会失败,我将不得不退后几步并尝试另一条路线。不知道怎么合乎逻辑。
谢谢。
你需要了解回溯,请查看下方link http://www.thegeekstuff.com/2014/12/backtracking-example/
此外,反向跟踪是一种通过在前进时将其推入堆栈来跟踪路径的方式,当您必须返回时,只需从堆栈中弹出即可。