Syntax 我使用的方式有什么问题;“海龟”号;?
我想对四处移动的代理进行建模,如果他们到达的补丁已经有超过承载能力(由滑块确定)的代理数量,他们就会死亡。 我试着这样写:Syntax 我使用的方式有什么问题;“海龟”号;?,syntax,netlogo,Syntax,Netlogo,我想对四处移动的代理进行建模,如果他们到达的补丁已经有超过承载能力(由滑块确定)的代理数量,他们就会死亡。 我试着这样写: to check-if-dead if habitat = "escarabajo" [ ask escarabajos [ if pcolor = one-of [yellow lime orange grey blue ] [die] if escarabajos-on patch-here >= capacidad-
to check-if-dead
if habitat = "escarabajo" [
ask escarabajos [
if pcolor = one-of [yellow lime orange grey blue ] [die]
if escarabajos-on patch-here >= capacidad-de-carga-bosques [die]
]
]
但我收到一条突出显示“此处补丁上的escarabajos”的消息,并说>>=预期此输入为代理、数字或字符串,但得到了turtle代理集>此处补丁上的escarabajos的结果是一个代理集:当前补丁上所有
escarabajos
的集合。您需要的是当前修补程序上的escarabajos
,因此您需要:
也就是说,escarabajos在这里的补丁
是不必要的冗长,因为NetLogo还有一个原语:
if count escarabajos-here >= capacidad-de-carga-bosques
最后,我预感到你的意思是:
if member? pcolor [ yellow lime orange grey blue ]
而不是:
if pcolor = one-of [yellow lime orange grey blue ]
原语随机从列表中拾取元素,因此只有当随机拾取的颜色恰好是当前面片的颜色时,您的条件才会为真。如果使用,则如果修补程序的颜色是列表中的任何成员,则条件将为真。Ahhh!!太好了,谢谢你much@Lorena如果答案解决了您的问题,请接受它-参见
if pcolor = one-of [yellow lime orange grey blue ]