我正在研究NetLogo模型,该模型在查找表中存储了大量信息,并嵌入了影响代理行为的补丁中。结果,我创建了一个模型"重置"从一个清除海龟的扩展,并重置计时器和滴答声。
我还希望扩展重置特定全局变量来跟踪模型结果,但不能重置所有常量全局变量(查找预计算信息表)。我还想重置所有界面图。
关于如何解决这个问题的任何想法?
我为没有显示的代码而道歉,因为我无法证明什么是无效的,因为我甚至不确定要尝试什么!
答案 0 :(得分:1)
您需要clear-globals
之类的内容,因此请查看https://github.com/NetLogo/NetLogo/blob/5.x/src/main/org/nlogo/prim/etc/_clearglobals.scala和https://github.com/NetLogo/NetLogo/blob/37cc1a0aa371c11e89f5b39b5143ed5d951e6081/src/main/org/nlogo/agent/World.java#L849-L866。
您需要clear-all-plots
之类的内容,因此请查看https://github.com/NetLogo/NetLogo/blob/37cc1a0aa371c11e89f5b39b5143ed5d951e6081/src/main/org/nlogo/prim/plot/primitives.scala#L45-L50和https://github.com/NetLogo/NetLogo/blob/37cc1a0aa371c11e89f5b39b5143ed5d951e6081/src/main/org/nlogo/plot/PlotManager.scala#L54-L57。
等等。
编辑:
要访问PlotManager,请注意plot / primitives.scala具有:
workspace.plotManager.asInstanceOf[PlotManager]
在扩展的Java代码中,从工作区plotManager()
获取PlotManager,除了该方法的返回类型是Object(是的,我知道,它是蹩脚和可怕的),所以你需要插入一个类型转换为org.nlogo.plot.PlotManager
,你很高兴。 PlotManager具有获取特定图的方法。