在我正在进行的仿真中,我有红色的乌龟。 我希望它们在开始时为黄色,然后在10个滴答声之后变为橙色,然后在其他10个滴答声之后变为红色。 我该怎么办?
to ignite
ask fires [
if count neighbors > 0 [
ask one-of neighbors with [pcolor = white or pcolor = green ]
[
if count fires-here < 6 [
sprout-fires 3
[ set color red set size 3 ]
]
]
]
]
end
答案 0 :(得分:2)
请注意,设置过程中已包含tick
。那需要在你的程序中。设置适用于仿真开始时的所有操作,而每次操作都会进行。命令tick
使时间步长递增计数器,而报告者ticks
读取时间步长计数器。
如果您要根据龟的存活时间来更改其颜色,您需要做的第一件事是让龟知道其“出生”的时间,因此请为其创建一个变量并存储当前的创建过程中该变量中ticks
的值。
fires-own
[ state ; you have this already
birth-tick ; this is the new one
]
更改此:
sprout-fires 3
[ set color red set size 3 set state "live"]
对此(请注意,间隔对NetLogo无关紧要,但有助于提高可读性)
sprout-fires 3
[ set color red
set size 3
set state "live"
set birth-tick ticks
]
因此创建了出生时间。现在,在您的go
过程(未显示)中,您希望所有10滴答的老乌龟都变色。一种方法是:
ask fires with [ birth-tick = ticks - 10 ] [ set color orange ]