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 ]