2012-02-19 119 views
2

我想將我的烏龜移動到它的視野中最近的紅色或綠色補丁。我試過這個代碼,但它不移動。什麼是錯的?netlogo移動烏龜最近的補丁

while [collectedDirt = 5] 
[ 
    ask turtle 0 [ 
        let nearest-patch min-one-of (patches with [pcolor = red or pcolor = green] in-cone 15 20)[distancemyself] 
        face nearest-patch 
        fd distance nearest-patch 

       ] 
    set collectedDirt collectedDirt + 1 
    search-dirt ;; research whether there is red patch in-cone because of new position 
] 

回答

4

您可能希望向我們提供多一點點的背景下,但我的猜測是,你需要像while [collectedDirt < 5]而不是while [collectedDirt = 5]。如果此塊是唯一的方法你海龜「收集灰塵」,甚至可能從未被執行的代碼...

編輯:

您可能還需要在情況下添加一個條件不存在紅/綠補丁視覺錐:

if is-patch? nearest-patch [ 
    face nearest-patch 
    fd distance nearest-patch 
    set collectedDirt collectedDirt + 1 
] 
+0

我試了一下,too.But我得到這個錯誤:FACE預期輸入是一個代理,但得到任何人來代替。 我正在使用search-dirt方法檢查修補程序以確保移動,但有時它永遠不會運行,有時會突然停止:S – Ecrin 2012-02-19 21:58:15

+0

此外,search-dirt方法:search-dirt 讓cnt對圓錐體內的修補程序進行計數15 20與[令pColor =黃色或令pColor =紅色] 如果CNT <1 [下10 搜索污垢] 結束 – Ecrin 2012-02-19 22:00:11

+0

關於「得到任何人,而不是」見編輯... – 2012-02-19 22:20:00

相關問題