2015-02-14 4 views
1

Как я могу построить атрибут агента в netlogo, каждый с другим пером. Учитывайте, что существуют и другие типы агентов, и числа, которые должны быть построены агентом, не всегда соответствуют распределению/созданию при запуске.Графический атрибут непересекающихся агентов

+0

Что вы имеете в виду: какие номера агентом, который должен быть нанесен, не всегда соответствуют распределению/созданию в начале ._? –

+0

Нельзя использовать цикл while, например, стартовый номер 25 и 50 агентов. У кого числа агентов, которые должны быть построены, не находятся между 25 и 75. –

ответ

2

Я считаю, что ваш вопрос действительно "как я могу связать каждого агента в агенте с помощью ручки?" Назовем агентом myset.

  1. Если agentset является статическим (не агенты не созданы или умирающие) во время моделирования, то вы можете ввести глобальный mylst и установить его один раз к списку агентов: set mylst [self] of myset. Затем вы можете связать ручки с членами списка в любом случае. (Например, вы можете также сделать список ручки так, чтобы индексировать агента в mylst и индекс его перо в mypens то же самое.)

  2. Вы можете использовать table и сопоставить каждое имя пера агента. (Мне, вероятно, нравится это решение лучше всего.)

  3. Если эти агенты представляют собой породу, вы можете дать породе атрибут pen, который вы установили в его имя pen. (Единственная причина, мне не нравится это решение является то, что он влезает с атрибутами агента исключительно для GUI целей, которые я стараюсь избегать.)

EDIT:

Поскольку вы создаете и уничтожая ваших агентов, но вы хотите, чтобы каждый из них контролировал свою ручку, у вас есть несколько странная ситуация, которая может привести к большому количеству бухгалтерии. Я собираюсь предложить решение 3: добавьте атрибут pen вашим агентам. Теперь каждый раз, когда вы создаете агент, включают в себя как часть инициализации следующий:

set pen (word "pen" who) 
set-current-plot "myplot" 
create-temporary-plot-pen pen 
plot attribute 

Здесь "myplot" это название сюжета, который вы используете для этого, и attribute этого имя атрибута ваши замышляют. Тогда каждый тик вы можете иметь каждый из этих агентов

set-current-plot "myplot" 
set-current-plot-pen pen 
plot attribute 

Если вы хотите, чтобы отличить агент от ручки цвета, вы должны сделать немного больше работы. (См. Команду scale-color для подсказок.)

+0

Хочет ли он нарисовать патчи или хочет ли он ** сюжет ** что-то вроде гистограммы? Я здесь смущен. –

+0

@Alan Спасибо! Вы сформулировали вопрос намного лучше. Мог бы предоставить некоторый код для второго предложенного решения, мой агент-агент, по-видимому, динамичен. –

+0

@DavidMerinos Участок в определенном участке линии. –

Смежные вопросы