假设我有一个2d网格。寻路是我问题的第二步。
我的意思是,假设我在网格中间有一个单元。我希望能够告诉用户“这些都是您可用的目的地。”。
根据单位可以走多少个方格,我想向用户显示“这些都是你可以达到的方格。”然后路径查找用户选择的目的地。
第一次搜索显示可到达目的地的最佳方法是什么?
根据地形的不同,地形也可能有限制。
我不知道这叫什么,所以我们将非常感谢您在哪里观看或谷歌的内容。
干杯! :)
/ E
答案 0 :(得分:4)
最好的方法可能是深度优先搜索(http://en.wikipedia.org/wiki/Depth_first_search),并限制你可以走多远。
答案 1 :(得分:2)
对于网格中的每个点,存储:
要计算,请先进行广度优先搜索:
请记住,如果您有限制,请在正确的步骤数后停止搜索。
如果你这样做的话,你可以找到所有可到达的点,查找他们的距离有多长,并且还有最短路径可用(尽管它是“向后”存储的)
不要深度优先搜索最短路径问题!您可能会反复进行多次重复计算。 (除非你使用更高级的启发式算法,比如A * - 但是你应该已经知道你在做什么了)
答案 2 :(得分:1)
用相同的数字标记连接的单元格,而不是用不同的数字连接。您可以找到用于在http://en.wikipedia.org/wiki/Connected_Component_Labeling处标记单元格的两遍算法。如果单元格数量不同,则玩家无法到达该位置。