NetLogo で水槽スタイルのシミュレーションを作成しています。「獲物」、「捕食者」、「隠れ場所」があります。
捕食者がマップ上に現れると、獲物は個別に「隠れる」動作を実行し、最も近い「隠れ場所」に向かいます - 捕食者と「隠れ場所」の間に捕食者がいない場合。
to move-turtles
ask prey [
if (any? predators)
[
hide
stop
]
hide コマンドを実行するための関連コード。
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 ステートメントを正しく使用する方法がわからないことです。したがって、1 つの獲物が脅威を発見すると、すべての獲物はステートメントを個別に評価するのではなく、ステートメントの else 部分を実行します。
どうすればこれを修正できますか?
どんな助けでも大歓迎です。