Как отслеживать координаты черепах после того, как они достигли границ мира в NetLogo?

Я моделирую случайное блуждание в пределах ограниченных ангелов и хочу вычислить среднеквадратичное смещение черепахи в 2D в моей модели. Все черепахи начинаются с центра. Я не уверен, как обновить координаты xy для черепах после того, как они достигли границ. Я прошу черепах прийти в норму, когда они ударяются о стену, и сохранить свои новые xcor и ycor. Вот мой код:

to go
  ask turtles
  [; head in a random direction in range (-theta, +theta)
   ifelse theta = 0 
     [set heading heading + 0 ]
   ; choose a normally distributed random angel in range (-theta, +theta)
     [set heading heading +  random-normal 0 (theta)]

    fd step-size 
    set xc xc + (step-size * dx)
    set yc yc + (step-size * dy)

   ; if your next patch is blocked:
    ifelse not can-move? 1
    [ set heading heading + 180
      fd 1 ]

   ;otherwise:
    [rt random-float random-normal 0 (theta)]
   set xcor xc
   set ycor yc
   set dist sqrt (xc * xc + yc * yc)]
  ]

Я получаю сообщение об ошибке: «Не удается переместить черепаху за край мира. Ошибка, когда черепаха 423 запускает SET, вызываемый процедурой GO, вызываемой кнопкой 'go'». Есть идеи, почему?


person Gol    schedule 25.02.2019    source источник


Ответы (1)


У вас отключена сетка, и ваш xcor / ycor ваших агентов проходит мимо max-pxcor / min-pxcor и max-pycor / min-pycor

person mattsap    schedule 25.02.2019
comment
Спасибо за ответ. Я добавил условие, если можно двигаться? 1 перед обновлением координат x-y, и моя проблема решена! - person Gol; 26.02.2019