Я моделирую случайное блуждание в пределах ограниченных ангелов и хочу вычислить среднеквадратичное смещение черепахи в 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'». Есть идеи, почему?