Ошибка, которую вы получаете в этой строке:
let x-component sum [dx] of nearest-teammates
NetLogo сообщает вам, что вы пытались передать одно число в sum
вместо того, чтобы передать ему список.Как это могло случиться?Это произошло бы, если бы nearest-teammates
содержал один агент вместо набора агентов.
Итак, давайте посмотрим, где вы определяете nearest-teammates
:
set nearest-teammates min-one-of myteamset[distance myself]
Можете ли вы увидеть проблему?Вы используете min-one-of
, который дает вам одного агента!
Как вы могли бы получить, например, 10 ближайших агентов вместо только ближайшего?К счастью, у NetLogo есть примитив, который делает именно это: min-n-of
.Вот как вы бы это использовали:
set nearest-teammates min-n-of 10 myteamset [ distance myself ]
Замените 10
на количество товарищей по команде, которое вы хотите, конечно.