Как проверить, что патч остается состоянием в течение определенного времени? - PullRequest
0 голосов
/ 13 февраля 2019

По модели « овцы едят траву ».Патчи меняют цвет с движением агентов.Я хочу проверить, сохранился ли патч какое-то время в оттенках цвета (например, 5 тиков).Если патч оставался в оттенках цвета в течение нескольких столетий без каких-либо изменений, он станет черным.

Я пытаюсь использовать отсчет, но это не сработало.Мне нужно накопленное состояние.Большое спасибо

If pcolor=green[
Ifelse countup>=5[
Set pcolor black
Set countup 0]
[set countup countup+1]]

1 Ответ

0 голосов
/ 13 февраля 2019

Не могли бы вы немного подробнее рассказать о том, что не так с кодом, который вы показали?Например, с этой настройкой:

patches-own [ time-spent-green ]

to setup
  ca
  crt 3 
  reset-ticks
end

Что-то очень похожее на ваш пример прекрасно работает для меня:

to go 
  ask turtles [
    rt random 61 - 30 
    fd 1
    ask patch-here [
      set pcolor green
    ]
  ]

  ask patches with [ pcolor = green ] [
    ifelse time-spent-green >= 5 [
      set pcolor black
      set time-spent-green 0
    ] [
      set time-spent-green time-spent-green + 1
    ]
  ]
  tick
end

Где патчи остаются зелеными в течение 5 тиков, затем снова становятся черными.

...