Я новичок как в Netlogo, так и в stackoverflow, но другие ваши сообщения уже мне очень помогли.
В настоящее время я пытаюсь запрограммировать модель, в которой агенты случайным образом блуждают в пространстве и останавливают их всякий раз, когда они встречаются. «Встреча» здесь означает «переходить друг друга in-radius 2
». Они должны face
друг друга, подождать 2 отметки и затем продолжать движение, пока не найдут следующего агента.
Я пробовал использовать Вопрос Нзелена по таймеру, но толком не увенчались успехом.
Пока мне удалось заставить их встретиться лицом к лицу. У меня проблемы с размещением tick
-команды в нужном месте в моем коде. (РЕДАКТИРОВАТЬ: это было решено удалением команды wait
, спасибо Сету. -> И я не хочу, чтобы все черепахи перестали двигаться, а только те, которые встречаются друг с другом). Еще одна вещь, к которой я стремлюсь, - это какое-то визуальное представление их встречи, например, чтобы нашивка мигала в то время, когда они встречаются, или кружок, который появляется вокруг них, когда они встречаются. С wait
-командой все снова останавливается, чего я хочу предотвратить.
Пока что ниже кода.
to go
tick
ask turtles
[
wander
find-neighbourhood
]
ask turtles with [found-neighbour = "yes"]
[
face-each-other
]
ask turtles with [found-neighbour = "no" or found-neighbour = "unknown"]
[ wander ]
end
;-------
;Go commands
to wander
right random 50
left random 50
forward 1
end
to find-neighbourhood
set neighbourhood other turtles in-radius 2
if neighbourhood != nobody [wander]
find-nearest-neighbour
end
to find-nearest-neighbour
set nearest-neighbour one-of neighbourhood with-min [distance myself]
ifelse nearest-neighbour != nobody [set found-neighbour "yes"][set found-neighbour "no"]
end
to face-each-other ;;neighbour-procedure
face nearest-neighbour
set found-neighbour "no"
ask patch-here [ ;; patch-procedure
set pcolor red + 2
;wait 0.2
set pcolor grey + 2
]
if nearest-neighbour != nobody [wander]
rt 180
jump 2
ask nearest-neighbour
[
face myself
rt 180
jump 2
set found-neighbour "no"
]
end
wait
вообще. Все останавливается, в то время как даже одна черепаха делаетwait
. - person Seth Tisue   schedule 09.03.2014