1

当乌龟改变它的方向时,我需要同时学习。也就是说,当海龟改变它的方向时,一个过程或一个报告器将改变一个布尔值。但是这个记者不会被任何其他程序调用,它会在海龟移动时一直运行(检查海龟的航向)。在 NetLogo 中有什么办法吗?

4

1 回答 1

1

我认为您可以使用“永久”按钮实现与您想要的类似的功能:即,一个不断运行程序的按钮。(人们通常在他们的模型中至少有一个这样的按钮,通常命名为“go”。)

假设您要跟踪的标题是 的turtle 0,您可以使用如下代码:

globals [
  current-heading
  heading-has-changed
]

to check-heading-changes
  if [ heading ] of turtle 0 != current-heading [
    set heading-has-changed true
    set current-heading [ heading ] of turtle 0
  ]
end

要让check-heading-changes代码持续运行,您只需从“永远”按钮调用它:

永远检查当前标题按钮

当您要开始监控时,您必须记住单击永久按钮。现在,当然,上面的代码还假设您将运行一些其他控制海龟的程序,并且当heading-has-changed变成时,它实际上会做一些事情(并重置变量) true

于 2012-08-01T19:20:18.857 回答