Netlo go черепаха перестает быть заразным через 14 дней и начинается после заражения - PullRequest
1 голос
/ 22 апреля 2020

спросить черепах с [заражен? и галочки <= 14] [заразить] </p>

это мой код, после заражения черепаха? он также заразит. но я хочу, чтобы это заразить только в 14-дневный период. происходит то, что он заражает только на первых 14 тиках и останавливается. Что я хочу сделать, это, например, черепаха заразится в тике 5, затем она перестанет заражаться в тике 19. Заранее спасибо

1 Ответ

2 голосов
/ 22 апреля 2020

ticks - глобальный счетчик временных шагов, поэтому он увеличивается с 0 (когда вы запускаете симуляцию с reset-ticks). Что вы пытаетесь сделать, так это чтобы каждая черепаха знала, когда она заразилась, а затем заразиться в течение следующих 14 клещей. Таким образом, вы должны создать переменную turtle, которая отслеживает, когда она заражается, и использовать ее в качестве условия. Что-то вроде:

turtles-own
[ infected?
  when-infected
]

to infect
  ask turtles
  [ if < whatever code you have that exposes them >
    [ set infected? true                  ; you must have this already
      set when-infected ticks
    ]
  ...
end

to ???
  ask turtles with [ infected? and when-infected >= ticks - 14 ] [ infect ]
  ...
end

Вы можете видеть, что строка замены сравнивает конкретное значение черепахи новой переменной when-infected с текущим значением ticks

...