Monica Matthews
Monica Matthews

Reputation: 21

Netlogo Reporter Not Reporting

I've made a animal behavior model involving "turtles" and "roads" and I want the model to report back to me when the turtle "crosses" a road. All I want is that it tells me when the turtle moves from a patch that is the grey color to the red color. I've included the code asking it to report this and the program has no issue with the code. To give me a visual representation of what I want it to report, I put a monitor on interface. But it always gives me a "0" for road crossings, even as I can see that my turtle has crossed roads. I would count it by hand, but it's impossible to tell for certain how many road crossings there are and this is for scientific publication. My code is as follows...

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

Any help is appreciated! Thank you!

Upvotes: 1

Views: 75

Answers (1)

JenB
JenB

Reputation: 17678

There are several potential problems with this that I can see.

First, road-crossings is a turtle variable, which is the correct thing to do if you want each turtle to remember how many times it crosses a road. If so, however, the monitor must report sum [road-crossings] of turtles to get the road crossings of all turtles.

Second, which I think is actually your problem: you have the turtle checking whether it crosses the road in the setup procedure rather than the go procedure. The setup procedure is only run at the beginning.

Third, you don't actually have any roads in your example code, but I suspect that's just a failure to create a proper example. I assume that there are patches with pcolor of 14.9 in your real code. If not, though, that would also cause your error. You can make sure by going into the command center and asking count patches with [pcolor = 14.9]

Upvotes: 3

Related Questions