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 括号
我正在与 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 括号