Ошибка, которую вы получаете, возникает потому, что вы говорите зеленым пятнам изменить их цвет на одного из их соседей, который является красным, но не у всех зеленых пятен обязательно есть красные соседи.В таком случае, когда вы говорите зеленому пятну «измените свой цвет на одного из ваших соседей, который является красным», зеленое пятно идет, «ну, среди моих соседей есть nobody
с этим цветом».Затем возвращается специальный набор агентов nobody
, а nobody
не имеет цвета для доступа к исходному зеленому патчу!
Я думаю, что вам может быть легче, если вы пойдете другим путем - то есть, когда красные пятна будут теми, которые распространяются.Например, в этом примере настройки:
to setup
ca
resize-world 0 25 0 25
ask patches [
set pcolor green
]
ask n-of 5 patches [ set pcolor red ]
reset-ticks
end
У вас есть мир с группой концентрирующихся студентов и 5 нарушителями спокойствия.Теперь, если вы заставите своих нарушителей спокойствия проверить, есть ли у них соседние участки, которые могут быть повреждены, у вас может быть недостаток концентрации, распространяющийся наружу с увеличивающейся скоростью:
to colorswap
ask patches with [ pcolor = red ] [
; See if there is any possible neighbor patch
; to whom I can spread my lack of concentration
let target one-of neighbors4 with [ pcolor = green ]
; if the target exists, have them change their color
if target != nobody [
ask target [
set pcolor red
]
]
]
end