我正在 NetLogo 中创建鱼缸式模拟。有“猎物”、“捕食者”和“隐藏点”。
这个想法是,当捕食者出现在地图上时,猎物将单独运行“隐藏”行为并前往最近的“隐藏点”——前提是它和“隐藏点”之间没有掠食者。
to move-turtles
ask prey [
if (any? predators)
[
hide
stop
]
运行隐藏命令的相关代码。
to hide
face min-one-of hidingspot [distance myself]
set d distance min-one-of hidingspot [distance myself]
ask patches in-cone d 80
[ set pcolor yellow
if (any? predators-here)
[ ask prey
[ forward 1
set color red
output-print "DANGER"]]]
forward 1
end
问题是我不知道如何正确使用“询问补丁”中的 if 语句。因此,当一个猎物发现威胁时,所有猎物都在运行语句的 else 部分,而不是单独评估它。
我将如何解决这个问题?
任何帮助表示赞赏。