我正在嘗試創建一個模型,讓龜隨機走動(但有向前移動的趨勢),直到它們落在代表誘餌物體。netlogo:如何使龜停止一定數量的刻度,然後繼續
當一隻烏龜着陸在其中一個黃色斑塊上時,我希望它停在那個斑塊上,並在它「檢查」誘餌時留在那裏15個蜱蟲。
經過15次滴答後,我希望海龜像往常一樣繼續移動,直到遇到另一個黃色補丁。
我試圖修改中的NetLogo建模公地這種停卡模型的一部分,但不能真正理解它(我是新來的NetLogo) http://modelingcommons.org/browse/one_model/3205#model_tabs_browse_procedures
我也嘗試實施如此線程中描述的倒計時定時器 How can one create a countdown timer in NetLogo?
但是,當我嘗試運行模擬時,收到運行時錯誤「只有觀察者可以詢問所有海龜的集合」。誰能告訴我我要去哪裏?可能有幾個地方!謝謝。
這裏是造成運行時錯誤代碼:
turtles-own [count-down]
to setup
clear-all
ask patches with [count neighbors != 8]
[set pcolor blue]
create-turtles 20
ask turtles
[setxy random-xcor random-ycor
pen-down]
ask n-of 20 patches
[ set pcolor yellow ]
reset-ticks
end
to go
move-turtles
tick
if ticks >= 720 [stop]
end
to move-turtles
ask turtles
[ ifelse pcolor != yellow
[continue]
[stay]
]
end
to continue
ask turtles
[rt -90 + random 181]
ask turtles
[ifelse [pcolor] of patch-ahead 1 = blue [ lt random-float 360 ]
[fd 1]
]
end
to stay
ask turtles
[
setup-timer
decrement-timer
if timer-expired? [continue]
]
end
to setup-timer
set count-down 15
end
to decrement-timer
set count-down count-down - 1
end
to-report timer-expired?
report (count-down <= 0)
end
謝謝你的幫助塞思和馬奇。這個錯誤是固定的,下面的代碼可以讓烏龜停下來並重新開始繼續。出於某種原因,由Marzy提供的代碼從0開始並繼續倒計時(並沒有停在5),但它使我走上了正確的軌道,並且我在下面做的小修改工作正常。 留 組倒計時遞減計數 - 1;遞減定時器 集標籤倒計時 如果遞減計數<= -15 [繼續 組標籤「」 復位倒計時 ] 端 重置倒計時 設置倒計時0 結束 – NZHelen
嗨,我想我應該包括整個代碼,你必須給倒數的初始值,因爲我只是給了部分代碼,我忘了提到這一點;)使用'設置倒計時15'創建海龜,所以計數器將從15開始,並從那裏遞減。 – Marzy