NetLo go - задержка выполнения определенных команд на основе тиков - PullRequest
0 голосов
/ 04 февраля 2020

Hello NetLo go community,

Я пытаюсь попросить агентов с именем "users" сохранить определенное значение (строку) переменной для двух последних тиков (последних двух случаев, когда "Go" команда выполнена). Но пользователи должны сохранять эти значения после первых двух отметок. Кто-нибудь может предложить мне выход? Я попытался реализовать следующую логику c, но она не работает.

ask users
  [
    set history-length-TM 2
    if ticks > 2
    [
      set TM-history n-values history-length-TM [mode-taken]
      foreach TM-history [x = "car"]
      [
        commands that are to be executed
        .....
        ......
      ]
    ]
  ]

"history-length-TM" - это экстент тиков, для которых должны быть сохранены значения. «TM-History» - список для хранения значений переменной «mode-take». Пожалуйста, посоветуйте лучший метод, который мог бы помочь мне достичь цели. Заранее спасибо.

1 Ответ

2 голосов
/ 04 февраля 2020

Я не уверен, что полностью понимаю, как галочки относятся к этому вопросу. Мое предложение будет примерно таким:

globals [history-length-TM]
users-own [TM-history]

to setup
  set history-length-TM 2
  ...
end

ask users
  ....
  set TM-history fput mode-taken TM-history
  if length [TM-history] > history-length-TM [set TM-history but-last TM-history]
end

Идея состоит в том, что память заполняется (используя fput), помещая новый режим, взятый в начале списка. Если память слишком длинная, последний (самый старый) удаляется из списка.

...