在我的模型中,我试图通过首先在半径内搜索来使一只乌龟(蝙蝠)移动到另一种乌龟(虫子)。我希望蝙蝠能够扫描其半径(视觉),然后检测该区域内最近的虫子,然后朝它移动。
我已经尝试了下面的代码(视觉半径和视角是滑块):
let prey min-one-of bugs in-cone vision-radius vision-angle
ask bats [move-to prey]
但是,min-one-of 返回一个错误,指出它需要一个主体集和一个数字块才能工作。于是尝试了以下代码:
let prey min-one-of bugs [in-cone vision-radius vision-angle]
ask bats [move-to prey]
此代码返回错误,因为“in-cone”需要在左侧有输入,这是错误。
我不知道是否可以同时使用 min-one-of 和 in-radius/in-cone ,或者是否有其他方法来创建此过程?
我感谢您提供的任何帮助:)
min-one-of
返回错误,因为缺少报告者。 in-cone vision-radius vision-angle
创建应报告的最小值的代理集。 min-one-of
还需要一名记者,因为它不特定于距离。它可以以最少的报告者的速度报告代理,例如xcor
。要拥有最近的代理,您需要创建距离报告器 -> [distance myself]
。
您还必须检查
prey
不会为空。
这是应该解决您正在寻找的问题的代码
to hunt
ask bats [
let prey min-one-of bugs in-cone vision-radius vision-angle [distance myself]
if prey != nobody [move-to prey]
]
end