Установка переменной черепахи от вложенного спроса - PullRequest
0 голосов
/ 13 апреля 2019

Я новичок в netlogo, поэтому мой вопрос может быть глупым.Я хочу установить переменную conv как true для двух или более черепах, если они сталкиваются друг с другом.Поэтому я перебираю всех черепах и спрашиваю их, есть ли черепаха в их конусе обзора.Если они есть, я спрашиваю этих черепах, не является ли лживость для них ложной и находится ли я в их взгляде.Если это так, мне нужно убедить обоих черепах, которые смотрят друг на друга.Код ниже, очевидно, не работает, но я не знаю, как написать это по-другому.

ask turtles[
ask other turtles in-cone 4 90[
    if (not conv) and (member? myself other turtles in-cone 4 90)[
        set conv true
        set [conv] of myself true]
    ]
]

1 Ответ

1 голос
/ 13 апреля 2019

Ключевое слово set указывает черепахе устанавливать свою собственную переменную (или глобальную переменную) в указанное значение.Это означает, что вам нужно перейти на перспективу черепахи, для которой вы хотите изменить переменную.Вот полная модель, которая делает это изменение перспективы.

to testme
  clear-all
  create-turtles 100
  [ setxy random-xcor random-ycor
    set color blue
  ]
  ask turtles
  [ ask other turtles in-cone 4 90
    [ if member? myself other turtles in-cone 4 90
      [ set color red 
        ask myself [ set color red ]
      ]
    ]
  ]
end

По сути, вместо set [conv] of myself true] вам понадобится что-то вроде ask myself [set conv true].

...