如何在 Netlogo 中随时间改变海龟的颜色?
How can I change color of turtles over time in Netlogo?
在我正在进行的模拟中,我有红海龟。
我希望它们一开始是黄色的,然后在 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
请注意,您的设置程序中有 tick
。这需要在你的 go 程序中。 setup 是模拟开始时的一切,go 是每个时间步发生的事情。命令 tick
增加时间步长的计数器,报告器 ticks
读取时间步长计数器。
如果您要根据乌龟的存活时间更改其颜色,您需要做的第一件事就是让乌龟知道它什么时候 'born',因此为此创建一个变量并在创建期间将 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 个 ticks 老的海龟都改变颜色。一种方法是:
ask fires with [ birth-tick = ticks - 10 ] [ set color orange ]
在我正在进行的模拟中,我有红海龟。 我希望它们一开始是黄色的,然后在 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
请注意,您的设置程序中有 tick
。这需要在你的 go 程序中。 setup 是模拟开始时的一切,go 是每个时间步发生的事情。命令 tick
增加时间步长的计数器,报告器 ticks
读取时间步长计数器。
如果您要根据乌龟的存活时间更改其颜色,您需要做的第一件事就是让乌龟知道它什么时候 'born',因此为此创建一个变量并在创建期间将 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 个 ticks 老的海龟都改变颜色。一种方法是:
ask fires with [ birth-tick = ticks - 10 ] [ set color orange ]