netlogo 逼真的捕食者行为

netlogo realistic predator behaviour

我正在与 Netlogo 合作创建一个逼真的捕食者猎物模型,但对距离命令感到困惑。


ifelse any? sheep in-radius senserange [
    let prey min-one-of sheep in-radius senserange [distance myself]
    **ifelse [distance prey] < speedrange**
      [move-to prey
    let addenergy [energy] of prey
    ask prey [die]
        set energy energy + (addenergy * energy-gain-from-sheep)
    rt 180
    fd speedrange
    ]
    [set heading towards prey
      fd speedrange
    ]
  ]
  [wiggle
  fd 1]


粗体代码是问题所在:我希望狼群不要立即接近猎物,而是以其速度范围的增量向猎物移动,除非它当然在该范围内,然后 运行抓住它 ;).

我收到错误消息:“此处需要代理或数字或字符串,而不是列表或块”

我认为是距离命令,我也试过这样的东西

ifelse prey in-radius speedrange [distance myself]

Thsi 版本导致错误:“IFELSE 预计此输入是 T/F 但得到的是海龟代理集或补丁代理集

尝试 ifelse distance prey < speedrange 而不是 ifelse [distance prey] < speedrange - 你不需要 reporter/command 括号