繁体   English   中英

Netlogo - 如何计算特定海龟周围的海龟数量

[英]Netlogo - how to count turtles number around a specific turtle

如果在黄海龟周围至少有 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) ,它是相邻块上的所有海龟并且要无论你的提问者乌龟坐在哪里。

目前,您的代码计算黄色海龟周围一个补丁半径内蓝色海龟的数量。 如果蓝色海龟的数量大于/等于 3,那么如果您使用“die”命令而不是“do-something-special”,黄色海龟就会死亡。 所以它看起来如下。

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

也许您可以将代码与以下示例合并,然后杀死邻居。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM