MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] MakeOneAgtsetAroundOwnが反映されない
質問者: urataさん , 質問日時: 2019/12/28 17:17
私は今ポイント0~19からそれぞれエージェント0~19を発生させています。またそれぞれのエージェントが視野内の他のエージェントを認識し速度を変えることにしています。
しかし実際に速度を変えるのは一番最後の種類のエージェントのみでした(0~19を発生させるなら19のみ、0~4なら4のみ)。以下のコードでエージェント0~18をPrintlnで調べるとそもそも「My.周り」の値が0でした。
解決策はあるでしょうか?アドバイスいただけたら幸いです。

Pursue(targetPointAgt, 3.5)
MakeOneAgtSetAroundOwn(My.周り, 3, Universe.map.Person0, False)
MakeOneAgtSetAroundOwn(My.周り, 3, Universe.map.Person1, False)
MakeOneAgtSetAroundOwn(My.周り, 3, Universe.map.Person2, False)
MakeOneAgtSetAroundOwn(My.周り, 3, Universe.map.Person3, False)
MakeOneAgtSetAroundOwn(My.周り, 3, Universe.map.Person4, false)
周りの人数 = CountAgtSet(My.周り)//[人]
If MY.ID==100 Then
Println(Getcountstep()&","&周りの人数&","&"person2")
End If



▼解決した回答


そもそもコード「My.周り」を使い回しているので、最後の実行したものしか反映されていないという状況です。
MakeOneAgtSetを使うのであれば、エージェント型の数だけAgtsetを定義して、それぞれに格納すれば良いです。
もう少しコーディングを勉強した方が良いと思いますので、『人工社会構築指南』を通読してください。

回答者: igaguri さん , 回答日時: 2019/12/28 18:38

▼ 全ての回答


そもそもコード「My.周り」を使い回しているので、最後の実行したものしか反映されていないという状況です。
MakeOneAgtSetを使うのであれば、エージェント型の数だけAgtsetを定義して、それぞれに格納すれば良いです。
もう少しコーディングを勉強した方が良いと思いますので、『人工社会構築指南』を通読してください。

回答者: igaguri さん , 回答日時: 2019/12/28 18:38
他の方法を試したら解決しました。
今の作業が終わりましたら勉強も兼ねて回答者様の方法で試させて頂きます。
回答者様、お忙しい中返信して頂きありがとうございました。

回答者: urata さん , 回答日時: 2019/12/28 20:12



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )