如何在 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 ]