簡體   English   中英

2D陣列中的尋路

[英]Pathfinding in 2D Arrays

假設我有這個2D陣列圖

{ 0,0,0,0,7,1,1,1,1,1,1,1,1 },
{ 0,7,7,7,7,1,1,1,24,1,1,1,1 },
{ 0,7,24,24,24,24,24,24,24,1,1,3,1 },
{ 0,7,23,23,23,23,23,23,24,1,1,3,1 },
{ 0,7,24,23,23,23,23,23,23,1,1,1,1 },
{ 0,7,24,23,23,23,23,23,23,1,1,1,1 },
{ 0,7,23,23,23,23,23,23,24,1,3,1,1 },
{ 0,7,24,24,24,24,24,24,24,1,3,1,1 },
{ 0,0,0,0,1,1,1,1,1,1,1,1,1 },

而且我的HashSet充滿了整數,這些整數定義被阻止的圖塊。 當我從玩家站立的位置單擊地圖的一部分以進行良好的尋路時,有什么好方法? A *(使用節點/等)? 你有什么建議?

謝謝。

如果圖的大小實際上與您描述的示例的順序相同,則可以安全地使用Dijkstra的算法 ,因為它的實現比A *簡單一些,並且如果可以的話,就不需要真正的啟發式算法了。幾乎同時進行詳盡搜索:)

至於您對“使用節點/等”的評論,盡管已經有點笨拙,但它已經是一張圖表。 每個數組值都是一個節點,並且“ edges”由數組中的鄰接關系給定。 可以通過禁止鄰接來完成被阻止的切片(即,查找被阻止的切片的列表,以確定正在考慮的當前節點是否可以到達另一個節點),或者如上文Yossarian所建議的那樣,只需將該塊的成本設置為某種程度即可幾乎無限大。 但是,如果采用后一種方法,則將要確保這些圖塊永遠不會無意間出現在解決方案中!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM