私は netlogo を初めて使用し、派閥モデルとフォロー/回避モデルのコードを組み合わせています。
タートルを派閥に分割し (異なる色で表示)、上の派閥に従い、下の派閥を避けようとしています。誰かが私のコードを見ることができれば、それはうまくいかないと思います。なぜなら、「品種」を使用して、カメが誰を上/下で判断するかを分離しようとしたためです.すべてのカメで異なる必要があります. 動作を許可していないと思われる領域を太字にしました..
breed [ above ]
breed [ below ]
turtles-own
[ faction ]
to setup
clear-all
ask patches [ set pcolor white ]
set-patch-size 10
resize-world min-pxcor max-pxcor min-pycor max-pycor
ask patch 0 0
[ ask patches in-radius ( max-pxcor * .9) with [ random-float 100 < density ]
[ sprout 1
[
set shape "circle"
set faction random factions
set color faction-color
set size 1.1
judge
] ] ]
reset-ticks
end
to go
ask turtles [ avoid ]
ask turtles
[ fd 0.1
if any? above in-radius 360; vision in patches and degrees
[ set heading (towards min-one-of above [distance myself]) ] ]; adjusts heading to point towards
ask turtles
[ fd 0.1
if any? below in-radius 360; vision in patches and degrees
[ set heading (towards min-one-of below [distance myself]) + 180 ] ] ; adjusts heading to point away from wanderer
tick
end
to judge
if turtle color = faction-color + 30
[ set breed above ]
if turtle color = faction-color
[ set breed same ]
if turtle color = faction-color - 30
[ set breed below ]
end
;; EXTRAS
to avoid
ifelse not any? other turtles-on patch-ahead 1
[ fd 0.1 ]
[ rt random 360 ]
end
to-report faction-color
report red + faction * 30
end
誰かが私を正しい方向に向けることができれば、それは素晴らしいことです. 再度、感謝します。