2017-01-16 65 views
1

我正在製作一款遊戲。我必須得到區域和點之間的最短路線。我的問題是,有一些點將玩家立即移動到另一個區域。我嘗試了Dijkstra算法,但我不知道如何實現它。區域之間的最短路段

紅點是開始和結束。 0表示該點將玩家立即移動到另一個區域。邊緣旁邊的數字是距離。

+0

你期望我們做什麼,執行它?嘗試自己做,並回來具體問題。 – pSoLT

+0

在某些情況下嘗試A *優於Dijkstra,並且在互聯網上還有大量實現 – bashis

+1

爲了降低計算成本(即使用商數集),我甚至建議識別距離爲0的點。順便說一句,你會用哪種語言? – SamCle88

回答

1

合併通過零邊緣連接的節點點。您可以通過在預處理步驟中複製圖形來實現 - 或者稍微改變算法,在運行時相應地處理零邊緣。