Это, по-видимому код, который будет работать на черепахе или пластыря , неясно, какой.
patches in-radius b
является агентом набора кругов патчей, радиус b
, вокруг вызывающего агента. max-one-of ... [field]
находит патч в этом агенте, который имеет наибольшее значение для field
. Затем этот патч сохраняется в новой локальной переменной a
. (А лучше, чем имя a
могло быть winner
или peak
или best-patch
.)
[field] of a
тогда, что максимальное значение field
, тот же самый, что нашли max-one-of
. ifelse
проверяет, находится ли это значение в определенном диапазоне или нет, и делает что-то другое, в зависимости.
Использует ли код внутри ifelse
a
? Если да, то здорово. Если это не так, ну, код может быть легко и просто записать в виде:
let m max [field] of patches in-radius b
ifelse m > 0.1 and m < 0.5
[
;; do something
]
[
;; do something else
]
возможно, видя его в таком виде поможет сделать смысл ясен.
Пусть максимум один заданный (номер/патч) и поместите его в поле. Если данное значение находится между .1 и .5, что-то делает. Если нет, то что-то еще. И нашел вас это: http://ccl.northwestern.edu/netlogo/docs/dict/in-radius.html –
@Evan это не «помещает его в поле», этот код никогда не устанавливает 'поле'. –