基于“ 绵羊吃草”模型。补丁随着代理的移动而改变颜色。我想检查一个补丁是否保持百分百的颜色一段时间(例如5个刻度)。如果补丁在某种程度上保持了百分百的颜色,而没有任何变化,它将变成黑色。
我尝试使用计数,但是没有用。我需要一个累积状态。非常感谢
If pcolor=green[
Ifelse countup>=5[
Set pcolor black
Set countup 0]
[set countup countup+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滴答声,然后变回黑色。