2017-01-16 62 views
1

我正在制作一款游戏。我必须得到区域和点之间的最短路线。我的问题是,有一些点将玩家立即移动到另一个区域。我尝试了Dijkstra算法,但我不知道如何实现它。区域之间的最短路段

红点是开始和结束。 0表示该点将玩家立即移动到另一个区域。边缘旁边的数字是距离。

+0

你期望我们做什么,执行它?尝试自己做,并回来具体问题。 – pSoLT

+0

在某些情况下尝试A *优于Dijkstra,并且在互联网上还有大量实现 – bashis

+1

为了降低计算成本(即使用商数集),我甚至建议识别距离为0的点。顺便说一句,你会用哪种语言? – SamCle88

回答

1

合并通过零边缘连接的节点点。您可以通过在预处理步骤中复制图形来实现 - 或者稍微改变算法,在运行时相应地处理零边缘。