首页 > 解决方案 > Netlogo - 如何计算特定海龟周围的海龟数量

问题描述

如果黄色乌龟周围至少有 3 只蓝色乌龟,我需要“做一些特别的事情”。下面的代码是否正确?我试过

ask turtles with [color = yellow]
  [
  if count turtles in-radius 1 with [color = blue] >= 3
  [do-something-special]
]

do-something-special应该移除(消失)3 个蓝色海龟和当前的黄色一个

我是否正确定位了相关海龟的位置,找到它们后如何杀死它们?

标签: netlogo

解决方案


汉娜的回答很好,但链接的例子不能完全解决你的问题。由于您将使用该组关闭代理两次(一次用于计数,一次用于可能删除一些代理),因此出于效率原因,您还应该创建一个代理集(您不想创建两次)。这是一个完整的解决方案。

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 1turtles-on (patch-set neighbors patch-here)它是相邻的所有海龟,并且与您的海龟所在的位置相同。


推荐阅读