Netlogo - 如何计算特定海龟周围的海龟数量
Netlogo - how to count turtles number around a specific turtle
如果黄龟周围至少有 3 只蓝龟,我需要 "do-something-special"。下面的代码是否正确?
我试过了
ask turtles with [color = yellow]
[
if count turtles in-radius 1 with [color = blue] >= 3
[do-something-special]
]
do-something-special
应该移除(消失)3 只蓝海龟和当前的黄海龟
我是否正确定位了相关海龟的位置,找到它们后如何杀死它们?
目前,您的代码会计算黄色海龟周围一个斑块半径内的蓝色海龟数量。如果蓝海龟的数量是 bigger/equal 3,如果你使用“die”命令而不是“do-something-special”,黄海龟就会死亡。所以它看起来如下。
ask turtles with [color = yellow]
[
if count turtles in-radius 1 with [color = blue] >= 3
[die]
]
也许你可以将代码与以下合并,然后杀死邻居。
Hannah 的回答很好,但链接的示例无法完全解决您的问题。由于您将两次使用关闭代理集(一次用于计数,一次用于可能删除一些代理),出于效率原因,您还应该创建一个代理集(您不想创建它两次)。这是一个完整的解决方案。
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 只蓝龟,我需要 "do-something-special"。下面的代码是否正确? 我试过了
ask turtles with [color = yellow]
[
if count turtles in-radius 1 with [color = blue] >= 3
[do-something-special]
]
do-something-special
应该移除(消失)3 只蓝海龟和当前的黄海龟
我是否正确定位了相关海龟的位置,找到它们后如何杀死它们?
目前,您的代码会计算黄色海龟周围一个斑块半径内的蓝色海龟数量。如果蓝海龟的数量是 bigger/equal 3,如果你使用“die”命令而不是“do-something-special”,黄海龟就会死亡。所以它看起来如下。
ask turtles with [color = yellow]
[
if count turtles in-radius 1 with [color = blue] >= 3
[die]
]
也许你可以将代码与以下
Hannah 的回答很好,但链接的示例无法完全解决您的问题。由于您将两次使用关闭代理集(一次用于计数,一次用于可能删除一些代理),出于效率原因,您还应该创建一个代理集(您不想创建它两次)。这是一个完整的解决方案。
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)
,它是您所在位置附近和相同补丁上的所有海龟提问者乌龟坐着。