2010-03-29 77 views
0

我有一個平坦的區域,節點隨機放置在這個平面上。我需要能夠採取起點的技術,以某種方式移動(算法),找到節點並繼續搜索。我沒有表面的整體視圖(即我看不到任何東西),只有有限的視野(即任何方向的4個細胞)。理想情況下,這些方法在工作方式上會很有效率。搜索給定區域資源的技巧/算法

任何點在正確的方向將不勝感激。

+0

有一些小的假設,這個問題減少了「繪畫」表面的問題。你如何被允許移動?在X或Y方向上跳9個單元格將是理想的。如果你只能像棋王一樣移動,那麼就沿對角方向走(爲了畫17個單元而不是9個)。怎麼樣? – Beta 2010-03-29 20:57:56

+0

我可以在8個不同的方向上一次移動一個單元格。我可以移動九個單元格(以九步),但是這是探索一個區域的最有效方法嗎?我聽說過一種方法,你在增加螺旋移動,但我正在尋找更多的選擇;) – Raydon 2010-03-29 21:08:55

+0

Raydon,你明白我的意思是17而不是9?你有沒有想過螺旋?你有沒有想過「高效」意味着什麼?你有沒有試圖自己來解決這個問題? – Beta 2010-03-29 22:21:20

回答

0

即使您忽略了您的起始位置,地圖尺寸是無限還是您知道尺寸?探索自己的起始位置還是最短時間內探索最多細胞的目標?

如果你想在無限的8連通地圖和4細胞可見度的所有方向探索你的鄰居,只需做對角線螺旋。如果網格是有限的,並且您知道尺寸,則可能會更好地沿着相同的方向前進,直到您碰到牆壁(這會顯示您的位置),因此您可以從此更好地規劃運動。

0

使用flood fill的變體 - 只需在每個像素填充後添加對節點的檢查。