2014-08-27 3 views
2

Я уверен, что это вопрос новобранец, но я до сих пор привык к NetLogo, поэтому, пожалуйста, простите меня.Как проверить, что переменная имеет одинаковое значение для всех агентов?

Я использую переменную, которую я создал для породы в качестве флага. Если все породы имеют одинаковое значение для переменной, я считаю, что мой флаг включен, и я предпринимаю определенные действия. Как я могу проверить, что переменная имеет одинаковое значение для всех агентов/пород в NetLogo?

Например:

breeds-own [ flagvariable ] 

Как я могу проверить, что для всех пород flagvariable = 1?

спасибо.

ответ

1

Вместо того, чтобы иметь flagvariable быть собственной породой, она должна быть переменной черепахи, поскольку она разделяется всеми черепахами. Затем вы можете использовать all?, чтобы проверить, если все черепахи имеют его установить на определенное значение:

all? turtles [ flagvariable = 1] 

В качестве альтернативы, если вы не все равно, что значение, вы можете использовать remove-duplicates, чтобы убедиться, что все они имеют то же самое значение:

length remove-duplicates [ flagvariable ] of turtles = 1 

Здесь мы рассчитываем, сколько различных значений flagvariable там в настоящее время. Если это точно 1, то мы знаем, что все черепахи имеют одинаковое значение.

+0

спасибо. Кажется, это работает. Однако теперь я понимаю, что моя модель не повторяется. Кажется, мои процедуры в процедуре go просто выполняются один раз, а затем после отметки № 1 процедура перехода больше не выполняется, но счетчик тиков продолжает увеличиваться. Странный. Любое понимание того, что могло бы создать такую ​​«замороженную» ситуацию? Спасибо. – AEA

+1

Рад, что ответ вам помог. Удостоверьтесь, что это означает, что это правильно, так как это помогает людям понять, какие вопросы были удовлетворительно удовлетворены. Что касается вашего нового вопроса, мне определенно потребуется дополнительная информация (включая фрагменты кода). Тем не менее, вы должны открыть новый вопрос о stackoverflow, а не задавать его в комментариях здесь. –

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