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