Netlogo:如何同时为多只海龟设置定时器计数?

Netlogo: How can I set timer counting for multiple turtles at once?

如何同时为多只海龟设置定时器计数?下面是示例语法。使用此语法,如果存在两只海龟,则计时器计数将在每个滴答中累计计数 2。示例:2、4、6、8,...,另一个示例:如果存在 3 只海龟,则为 3、6、9,...,每个刻度进行累积计数。递减定时器也有同样的问题。在这个模型中,一只海龟在原点 (0 0) 无限诞生,经过一定时间后,海龟一只一只地死去。即使有多个补丁也会出现此问题。我可能需要你的建议。谢谢。

    ask (turtles-on patch 0 0)
  [
    set count-up count-up + 1
  ]

我认为您对全局变量和海龟拥有的变量之间的区别感到困惑。如果您在不同时间创建了多只海龟,那么您可能希望每只海龟都有自己的计时器(以便不同海龟的值可以不同)。如果你想要的只是一个全局变量来增加或减少每个报价,那么不要把它放在 ask 语句中。只需说“set counter counter + 1”之类的话。

这是一个完整的模型,可以帮助您了解代码中发生的事情。

globals [num-turtles counter ave-count-up]
turtles-own [count-up]

to setup
  clear-all
  set num-turtles 5
  reset-ticks
end

to go
  set counter counter + 1
  if count turtles < num-turtles
  [ ask patch 0 0
    [ sprout 1
      [ set count-up 0 ]
    ]
  ]
  ask (turtles-on patch 0 0)
  [ set count-up count-up + 1
    show count-up
  ]
  type "Current value of counter is " print counter
  type "Number of turtles: " print count turtles
  type "Total of all turtle counters: " print sum [count-up] of turtles
  set ave-count-up mean [count-up] of turtles
  tick
end