2015-09-02 90 views
1

我想讓我的海龜徘徊,直到它的energy水平< [totalattract] of patch-here。這裏的代碼工作正常:NetLogo:移動龜,直到它找到1滴答的最終補丁?

to move-turtles 
    ifelse ([totalattract] of patch-here < energy) 
    [ rt random 90 lt random 90 
    jump random 3 
    ] 
    [move-to max-one-of patches in-radius 3 [totalattract] 
    ] 
    if energy = 0 [die] 
end 

然而,我想讓它1點中漫步 - 開始與流浪(跳躍),並在跳躍結束(當其energy < [totalattract]補丁這裏) move-it與最高[totalattract]價值修補的污點在半徑十,我試圖實現while條件或repeat,但是,對於repeat我需要運動的具體數量和龜的energy和補丁的[totalattract]的這一決定。我該如何處理?我會很感激每一個幫助或建議!

+0

所以請說明滴答內發生了什麼 - 它跳轉並環顧四周。如果它恰好落在了一個與自身能量相關的補丁上,那麼它會隨機跳躍。如果它碰巧落在一個總體較小的補丁上,它會跳到它可以看到的最高總計。所有這些跳躍都耗盡了能量嗎?我問的原因是因爲你在上面的代碼中有一個死亡測試。你想讓它在一個嘀嗒聲中徘徊 - 它會停止流浪的條件是什麼? – JenB

回答

1

如果你想所有的海龜做他們的程序在1滴答,你想把tick陳述在你的程序go。就像這樣:

to go 
    ask turtles [move-turtles] 
    ;Some other code here... 
    tick 
end 

如果你只需要一個龜做在1點的過程中,您希望把tick聲明你的move-tutle過程內。像這樣:

to move-turtles 
    ifelse ([totalattract] of patch-here < energy) 
    [ rt random 90 lt random 90 
    jump random 3 
    ] 
    [move-to max-one-of patches in-radius 3 [totalattract] 
    ] 
    if energy = 0 [die] 
    tick 
end 
+0

嗨@DavidMerinos謝謝你的回答我學會了如何正確使用蜱! :)但是,我想讓所有的海龜移動並尋找合適的補丁(因此重複或循環移動),只需一次打勾即可完成補丁。 tgus不會影響他們的行動時間,但會迫使他們產生所有的動作,直到找到補丁 – maycca

+0

@maycca然後第一個解決方案將做你想做的。 –

相關問題