NetLogo: запись расстояния, пройденного черепахой

У меня есть модель NetLogo, которая требует, чтобы черепаха записывала расстояние, пройденное ею от точки A до B.

Важно, чтобы расстояние измерялось черепахой, а не просто вычислением расстояния между двумя точками.

Думаю, что-то вроде собственного черепахи будет достаточно, чтобы запомнить пройденное расстояние?


person algorhythm    schedule 18.03.2014    source источник


Ответы (1)


Я предполагаю, что вы не хотите просто использовать distance из исходный момент, потому что возможно, что ваша черепаха не двигалась по прямой?

В любом случае можно использовать переменную turtles-own. Вот полный пример:

turtles-own [
  distance-traveled
]

to travel
  clear-all
  create-turtles 5
  repeat 100 [
    ask turtles [
      set heading random 360
      let d random 10
      forward d
      set distance-traveled distance-traveled + d
    ]
  ]
  ask turtles [ show distance-traveled ]
end

Предполагается, что вы используете forward для перемещения черепахи. Если вы используете setxy для перемещения черепахи, вам нужно заменить блок ask turtles на:

    ask turtles [
      let old-xcor xcor
      let old-ycor ycor
      setxy ... ...
      set distance-traveled distance-traveled + distancexy old-xcor old-ycor 
    ]
person Nicolas Payette    schedule 18.03.2014
comment
Да, на данный момент это прямая линия, но позже я планирую добавить препятствия, которые нужно будет учесть. Спасибо - person algorhythm; 19.03.2014