Одновременно согласование в Netlogo

В настоящее время я пытаюсь реализовать модель в Netlogo, где поведение черепах зависит от всех их соседей. Моя точка отправления - это код координационной игры, предоставленный: http://modelingcommons.org/browse/one_model/2549

Согласно этой модели, выигрыш для черепахи определяется путем введения переменной, которая принимает цвет соседа в качестве значения.

ask turtles [
let his-color [color] of one-of turtles-on neighbors
if color = yellow and his-color = yellow [set payoff A-yellow-yellow set alt-payoff B-red-yellow]

Тем не менее, мне нужно, чтобы мои черепахи получили выгоду, сравнивая их цвет со всеми соседями одновременно. Последняя часть проблематична из-за синхронного обновления Netlogo по умолчанию. Может кто-нибудь подсказать мне, как сделать обновление одновременно и в зависимости от всех соседей, или у кого-то есть ссылка на место, где это обсуждается?

1 ответ

Решение

Просто соберите все цвета, прежде чем менять любой из них. Например,

turtles-own [nbr-colors]

to go
  ask turtles [
    set nbr-colors [color] of neighbors  ;get list of current colors
  ]
  ask turtles [
    set payoff compute-payoff nbr-colors
    set color anything-you-want
  ]
end
Другие вопросы по тегам