如何停止显示器持续运行?

时间:2015-08-31 16:22:02

标签: netlogo

监视器(下方)不断运行并生成随机的输出列表,即使没有勾选活动。

问题:它应该继续运行吗?有没有办法在没有连续随机输出的情况下监视接口上的列表?

代码

to go
  crt 100 [fd random 14 + 1]
end

to-report report-red-turtles
  report [who] of turtles with [color = red]
end

运行:

在界面上,创建一个监视器报告 - red-turtles和一个简单的go按钮

1 个答案:

答案 0 :(得分:1)

按设计"Monitors automatically update several times per second"。在大多数情况下,这是一个方便的设计,但也会产生一些奇怪的后果(小心不要在监视器代码中产生副作用!)

你的情况会发生什么

[who] of turtles with [color = red]

每次运行时都会生成不同的输出:of生成的列表始终是随机顺序。

要解决这个问题,您有两种选择。

  • 删除随机性:sort [who] of turtles with [color = red]
  • 使用全局变量(例如red-turtles),每个刻度更新一次,并在显示器中显示。

这是简单性和速度之间的权衡:第一种选择更简单,更清晰,但计算成本更高。