netlogo乌龟在射程范围内直接移动到另一只乌龟

时间:2015-06-02 11:21:39

标签: netlogo

这是猛禽和人类的食肉动物捕食模拟。我希望猛禽在射程范围内直接移动到最近的人类。如何在netlogo中实现这一点?有什么建议吗?

2 个答案:

答案 0 :(得分:4)

假设您想要一个5的范围,并且假设您希望猛禽向每个蜱的最近的人移动一步。然后:

ask raptors [
  let candidates humans in-radius 5
  if any? candidates [
    let target min-one-of candidates [distance myself]
    face target
    fd 1
  ]
]

答案 1 :(得分:1)

要添加Seth建议的替代方案,如果你想让猛禽立即移动到目标人类然后立即吃掉它们,你可以试试:

ask raptors [
   let candidates humans in-radius 5
   if any? candidates [
   let target min-one-of candidates [distance myself]
      move-to target
      ask target [die]
  ]
]     

如果你想让猛禽获得任何东西(能量等),你可以把它放在move-to和ask目标命令之间。如果你想让人类在吃东西时做任何事情(为其他人喊叫等等),你可以在ask target命令之后将它放在括号中但是确保将它放在die之前或者die命令执行第一。

相关问题