Расстояние между черепахами (машина) - PullRequest
0 голосов
/ 07 октября 2018

Недавно я работал над netlogo, особенно над Traffic Basic.Я хочу изменить код и сделать функцию для вычисления расстояния между каждой черепахой (машиной) и той, что впереди.Как я могу это сделать?

1 Ответ

0 голосов
/ 08 октября 2018

Может быть to-report будет делать то, что вы хотите.Если вы добавите эту процедуру в 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

Теперь в качестве примера вы можете изменить go, чтобы убедиться, что это работает, например:

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

Я рекомендуюуменьшив количество автомобилей до 3 или 4, оцените операторы печати и убедитесь, что вы делаете то, что ожидаете.

...