Netlogo Reporter Not Reporting

时间:2018-01-24 21:51:15

标签: netlogo

我制作了涉及" turtles"的动物行为模型。和"道路"我希望模型能够在乌龟穿过"时向我报告。一条路。我想要的只是它告诉我乌龟什么时候从灰色的补丁变成红色。我已经包含了要求它报告此代码的代码,程序没有代码问题。为了让我直观地展示我想要报告的内容,我在界面上放置了一个监视器。但它总是给我一个" 0"对于道路交叉口,即使我可以看到我的乌龟已越过道路。我会手工计算,但是不可能确定有多少道路交叉口,这是科学出版物。我的代码如下......

turtles-own [
road-crossings
]

to setup
  clear-all
  ;; create turtles on random patches.
  ask patch 6 -15 [
      sprout 1 [
        set color one-of [green]
      set size 1
      set road-crossings 0
      ]
    ]
  ask turtles [
    if [pcolor] of patch-here = 14.9 [
      set road-crossings road-crossings + 1
    ]
  ]
  reset-ticks
end

to go
 ask turtles [
    repeat 100 [
    repeat 39 [
    pen-down
    rt random-float 360
    lt random-float 360
    fd random-float 1.375
  ]
    setxy 6 -15
  ]
  ]
  tick
end

任何帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:3)

我可以看到有几个潜在的问题。

首先,道路交叉是一个乌龟变量,如果你想让每只乌龟记住它穿越道路的次数,这是正确的做法。但是,如果是这样,监视器必须报告sum [road-crossings] of turtles以获取所有海龟的道路交叉口。

其次,我认为这实际上是你的问题:你有乌龟检查它是否在设置程序而不是go程序中过马路。设置程序仅在开始时运行。

第三,你的示例代码实际上没有任何道路,但我怀疑这只是创建一个正确的例子。我假设您的实际代码中有pcolor为14.9的补丁。但是,如果没有,那也会导致您的错误。您可以通过进入指挥中心并询问count patches with [pcolor = 14.9]

来确保