如何使用 Netlogo 中的按钮停止模拟

问题描述 投票:0回答:1

我将 go 功能设置为永远,并且我想创建一个按钮来停止模拟,因为我注意到运行模型的同行不会再次按下 go 按钮来停止模拟。然而,带有停止原语的按钮并没有停止运行。

可以这样做吗?

netlogo
1个回答
0
投票

一种方法是使用变量来存储“标志”来指示运行是否应该继续。在下面的示例中,我将其称为

should-stop?
。然后,您可以在
go
过程中的某个位置引用该标志来调用
stop
。在下面的示例中,我在每次调用
should-stop?
开始时评估
true
是否为
go

globals [ should-stop? ]

to setup
  ca
  crt 20
  set should-stop? false
  reset-ticks
end

to go 
  if should-stop? [
    stop
  ]
  ask turtles [ 
    rt random 60 - 30 
    fd 1
  ]
  tick
end

然后,您可以设置一个带有代码

set should-stop? true

的停止按钮

Example 'Stop!' button code

这样,当您的用户单击停止按钮时,条件

if should-stop?
将计算为
true
并且永远
go
按钮将停止。

请参阅按钮页面了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.