如何解决我使用“ turtles-on”的方式有什么问题?
我想对移动的特工进行建模,如果特工到达的补丁中已经有#个特工超过承载能力(由滑块确定),它们会死去。 我试着这样写:
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-on补丁程序”,并说>> =期望此输入为代理,数字或字符串,但改为使用了乌龟代理集>
解决方法
escarabajos-on patch-here
的结果是一个代理集:当前补丁上所有escarabajos
的集合。您想要的是当前补丁中escarabajos
的 number ,因此您需要count
:
if count escarabajos-on patch-here >= capacidad-de-carga-bosques
话虽这么说,escarabajos-on patch-here
不必要地冗长,因为NetLogo也有一个<breeds>-here
原语:
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 ]
one-of
原语从列表中随机选择一个元素,因此,只有当随机选择的颜色恰好是当前色块的颜色时,您的条件才为真。通过使用member?
,如果补丁的颜色是列表的任何成员,则条件为true。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。