{
ある特定の範囲で左折をする
半径1セル以内のエージェントを探す
半径1セル以内にSaku1が1つ以上ある場合、Y方向にTurnして進む
半径1セル以内にSaku1がない場合、左折方向にそのまま進む
}
というルールをつくりたいとき、
MakeAllAgtSetAroundOwnCell(群集, 1, False)
If CountAgt(Universe.Field.Saku1) >= 1 Then
Turn(-90)
Else Forward(My.Speed)
ではシミュレーションに反映されていないようでした。
これは一行目がAgtsetで2行目がAgtだからでしょうか。
また、希望としては左折した方向(エージェントからすると前方)にSaku1があるかを探し、
その方向にSaku1がある場合のルールをつくりたいと思っています。
こちらについてもご教授願いたいです。
ファイルも添付させていただきます。
該当の行はHito_REDエージェントの361行目から365行目です。
よろしくお願いいたします。
NinzuSakuYokeru_kke12.model
.zip
ダウンロード:ZIP • 19KB
そうですね。
MakeOneAgtSetAroundOwnCellを使って、下記のように記述してください。
MakeOneAgtSetAroundOwnCell(群集, 1, Universe.Field.Saku1, False)
If CountAgtSet(群集) >= 1 Then
Turn(-90)
Else Forward(My.Speed)