sandhy cakra
sandhy cakra

Reputation: 1

Distance Between Turtles (car)

Recently I've been working on netlogo especially at Traffic Basic. I want to modify the code and make a function to calculate distance between every turtle (car) with the one ahead of them. How can I do this?

Upvotes: 0

Views: 237

Answers (1)

Luke C
Luke C

Reputation: 10291

Maybe a to-report will do what you want. If you add this procedure to Traffic Basic:

to-report distance-car-ahead 
  ; If there are any cars within 10 patches of me
  ifelse any? other turtles in-cone 10 1 [
    ; Report the distance to the nearest one
    report distance ( min-one-of ( other turtles in-cone 10 1 ) [distance myself] )
  ] [
    ; Otherwise, report that I am in the lead
    report "I am the lead car"
  ]
end

Now as an example, you can modify go to check that this is working, like so:

to go
  ;; if there is a car right ahead of you, match its speed then slow down
  ask turtles [
    let car-ahead one-of turtles-on patch-ahead 1
    ifelse car-ahead != nobody
      [ slow-down-car car-ahead ]
      [ speed-up-car ] ;; otherwise, speed up
    ;; don't slow down below speed minimum or speed up beyond speed limit
    if speed < speed-min [ set speed speed-min ]
    if speed > speed-limit [ set speed speed-limit ]
    fd speed
    show distance-car-ahead
  ]
  tick
end

I recommend turning the number of cars down to 3 or 4 to evaluate the print statements to make sure it's doing what you expect.

Upvotes: 1

Related Questions