如果netlogo在一定范围内,如何停止乌龟一段时间并杀死两只乌龟

时间:2019-02-14 06:28:18

标签: netlogo

如果两只乌龟进入一定半径,如何阻止/杀死它们?其余的海龟不应停止运动。

1 个答案:

答案 0 :(得分:1)

要求所有海龟检查其环境

这是一个示例,可能对第一次尝试很有帮助。由于目的是在继续行走和死亡时向大量海龟发出信号,因此您需要创建一个过程,要求所有海龟检查其环境。

天真的实现:

to global-step
   ask turtles [ ifelse any? other turtles in-radius 3 [ die ] [ fd 1 ] ]
end

幼稚的实现可以很好地删除乌龟,但是并不是所有的乌龟都被删除了,因为乌龟会随着每只乌龟的检查而消失。

多个代理商的改进

改善此问题的一种方法是添加一个乌龟拥有的变量,以将乌龟标记为在乌龟的特定半径内。

改进版本:

to global-step
   ask turtles [ 
      ifelse any? other turtles in-radius 3 
         [ set turtle-variable true ] 
         [ set turtle-variable false ] ]
   ask turtles [ ifelse turtle-variable [ die ] [ fd 1 ] ]
end