我将 go 功能设置为永远,并且我想创建一个按钮来停止模拟,因为我注意到运行模型的同行不会再次按下 go 按钮来停止模拟。然而,带有停止原语的按钮并没有停止运行。
可以这样做吗?
一种方法是使用变量来存储“标志”来指示运行是否应该继续。在下面的示例中,我将其称为
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
的停止按钮
这样,当您的用户单击停止按钮时,条件
if should-stop?
将计算为 true
并且永远 go
按钮将停止。
请参阅按钮页面了解更多信息。