Создание набора агентов вне списка
Это относится к предыдущему только что заданному вопросу.
Как я могу преобразовать список (который представляет черепах) в набор агентов?
Например, я хочу сделать
набор агентов, который содержит 4 элемента [черепаха 0 черепаха 3 черепаха 4 черепаха 7]
вне списка ["черепаха 0" "черепаха 3" "черепаха 4" "черепаха 7"]
Я пробовал "foreach" раньше.
Заранее спасибо ~!!
2 ответа
Я не уверен, почему вам нужно работать с таким списком, как
["turtle 0" "turtle 3" "turtle 4" "turtle 7"]
на первом месте. Хранить ссылки на агентов как что-либо, кроме прямых ссылок на агентов, обычно не очень хорошая идея.
При этом вы можете преобразовать такую строку в набор агентов с помощью:
turtle-set map runresult ["turtle 0" "turtle 3" "turtle 4" "turtle 7"]
Если какой-либо из этих черепах не существует, они будут просто исключены из результирующего набора агентов.
Тем не менее, все это кажется мне несколько плохим советом. Если вы расскажете нам больше о том, чего пытаетесь достичь, возможно, мы могли бы предложить лучший подход в целом.
Вы по какой-то причине ограничены в работе со списком строк? Если нет, но вы все еще хотите получить список, я бы рекомендовал сначала создать списки, содержащие агентов. Если вы запишете это в файл позже, он все равно будет преобразован в строку. Внутренне гораздо проще работать с агентами напрямую.
Чтобы составить список агентов на основе списка номеров:
globals [ turtle-list num-list]
to setup
ca
reset-ticks
crt 3
set num-list [ 0 1 2 ]
set turtle-list map [ i -> turtle i ] num-list
print turtle-list
end
Обратите внимание, что если список содержит who
номер для несуществующей черепахи, вы получите nobody
в вашем списке.
Не обращайте внимания на все это, просто делайте то, что говорит @NicolasPayette.