netlogo - Netlogo - 如何计算特定海龟周围的海龟数量
问题描述
如果黄色乌龟周围至少有 3 只蓝色乌龟,我需要“做一些特别的事情”。下面的代码是否正确?我试过
ask turtles with [color = yellow]
[
if count turtles in-radius 1 with [color = blue] >= 3
[do-something-special]
]
do-something-special
应该移除(消失)3 个蓝色海龟和当前的黄色一个
我是否正确定位了相关海龟的位置,找到它们后如何杀死它们?
解决方案
汉娜的回答很好,但链接的例子不能完全解决你的问题。由于您将使用该组关闭代理两次(一次用于计数,一次用于可能删除一些代理),因此出于效率原因,您还应该创建一个代理集(您不想创建两次)。这是一个完整的解决方案。
ask turtles with [color = yellow]
[ let near-blue turtles in-radius 1 with [color = blue]
if count near-blue >= 3
[ ask n-of 3 near-blue [die]
die
]
]
此外,如果您不关心半径的精确性,则可以替代turtles in-radius 1
,turtles-on (patch-set neighbors patch-here)
它是相邻的所有海龟,并且与您的海龟所在的位置相同。
推荐阅读
- c# - 如何从事件处理程序发送 Dts 信息消息 SSIS?
- google-apps-script - Google 应用程序脚本:如何使用脚本从 Salesforce 刷新数据连接器?
- batch-file - 将多个命令传递给从批处理文件启动的批处理文件
- git - 如何存储工作树的完整状态,包括忽略、未跟踪、暂存和/或未暂存文件?
- c++ - 将变量传递给派生类的构造函数会产生垃圾值,基类和派生类的构造函数都有不同的参数。为什么?
- bluetooth - BlueZ 蓝牙应用程序上的持续日志消息:“蓝牙:hci0:安全请求但不可用”
- php - 尽管没有显示错误,但无法使用 PHP 显示数据库中的特定行
- php - date() 函数返回上一个日期
- javascript - js如何保存文本
- html - 带有在引导卡中换行的文本旋转