Не уверен, почему застревает кнопка настройки.Но есть проблема с вашим кодом.У вас есть ask patches [ set source-patches ...]
, и каждый патч получит это.Это должно быть довольно быстро, но может объяснить вашу проблему с липкостью.
Эта исправленная версия вашего кода работает
to setup
clear-all
let sink-patch-radius 3
crt sink-patch-radius
;; create the 'sink'
let sk1x random-pxcor
let sk1y random-pycor
while [ abs(sk1x - min-pxcor) < (sink-patch-radius - 1)
or abs(max-pxcor - sk1x) < (sink-patch-radius - 1)
or abs(sk1y - min-pycor) < (sink-patch-radius - 1)
or abs(max-pycor - sk1y) < (sink-patch-radius - 1) ]
[ set sk1y random-pycor
set sk1x random-pxcor ]
let sink-patches patches with [(round(distancexy sk1x sk1y)) < sink-patch-radius ]
ask sink-patches [ set pcolor brown + 2 ]
;; create the 'source'
let source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]
end
Но я не уверен, почему вы бродите с while
заявление вместо того, чтобы просто определить патчи, которые находятся рядом.Попробуйте это для более удобочитаемой версии (обратите внимание, что черепах нет, поэтому вам нужно изменить их, чтобы вернуть обратно)
globals [ sink-patches source-patches]
to setup
clear-all
;; create the 'sink'
let sink-patch-radius 3
let sink-centre one-of patches
set sink-patches [patches in-radius sink-patch-radius] of sink-centre
ask sink-patches [ set pcolor brown + 2 ]
;; create the 'source'
set source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]
end