Netlogo:如何一次为多只乌龟设置计时器计数?

时间:2017-10-14 06:05:25

标签: timer counter netlogo

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

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

1 个答案:

答案 0 :(得分:2)

我认为你对全局变量和海龟拥有变量之间的区别感到困惑。如果您在不同时间创建了多只海龟,那么您可能希望每只海龟都有自己的计时器(因此不同海龟的值可能不同)。如果你想要的只是一个增加或减少每个标记的全局变量,那么就不要把它放在ask语句中。只需说出“设置计数器+ 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