Вы можете создать свои два набора агентов следующим образом:
let not-working-turtles turtles with [not is-on-job?]
let working-turtles turtles with [is-on-job?]
Чтобы переместить черепаху из одной в другую, вам понадобится код в виде:
to make-me-work
let free one-of not-working-turtles
ask free
[ set is-on-job? true
set not-working-turtles other not-working-turtles
]
set working-turtles (turtle-set working-turtles free)
end
Здесь я использовал очень удобный other
примитив для удаления черепахи, делающей запрос. Вы, скорее всего, захотите сделать это как процедуру, которая принимает аргументы и передает черепаху процедуре, а не случайным образом выбирает одну из них в процедуре, но код будет аналогичным.
По вашему вопросу о выборе ближе всего, вам не нужно сортировать. Вместо этого посмотрите на min-one-of
в словаре NetLo go. Если вы не можете решить эту проблему, задайте новый вопрос (StackOverflow должен содержать только один вопрос на вопрос) с соответствующим кодом.