如何检查某个补丁的时间是否保持补丁状态?

时间:2019-02-13 07:16:45

标签: netlogo

基于“ 绵羊吃草”模型。补丁随着代理的移动而改变颜色。我想检查一个补丁是否保持百分百的颜色一段时间(例如5个刻度)。如果补丁在某种程度上保持了百分百的颜色,而没有任何变化,它将变成黑色。

我尝试使用计数,但是没有用。我需要一个累积状态。非常感谢

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

1 个答案:

答案 0 :(得分:1)

您能否提供更多有关所显示代码出了什么问题的详细信息?例如,使用以下设置:

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滴答声,然后变回黑色。