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

質問  (回答受付中)

[artisocモデル] [artisocモデル] エージェントを別のエージェントに変える関数について
質問者: imlunaさん , 質問日時: 2020/11/04 22:02
artisoc初心者です。
「鬼ごっこ」のシミュレーションを現在練習として作成しています。

「鬼が人間を追いかけて距離がゼロになったとき、その人間が鬼になる」という状況をプログラムで再現したいです。

鬼が人間を追いかけて距離がゼロになった場合までは表現できたものの、「その人間が鬼に変わる」という部分の再現が上手くできません。

KillAgtで人間を消した後にCreateAgtで鬼を生成すればいいのでは、と思ったものの、とすると空間内のどこかに鬼がランダムに生成されることになってしまい、人間が鬼に変わるという現象を正確に表現できません。

何か適当な方法はございませんでしょうか。
ご教授いただけますと幸いです。



▼ 全ての回答


鬼ごっこの場合、鬼役と人間役の2つの役割があり、相互に変わると思います。

例えば、Personというエージェントを定義して、変数Modeを定義し、"鬼"、"人間"の状態を持って、それぞれのモードの行動を記述すればよいと思います。

Universe.Map.Person.Mode(文字列型)

PersonのAgt_Stepで

If StrComp(My.Mode, "鬼") == 0 Then
// 鬼役の行動
ElseIf StrComp(My.Mode, "人間") == 0 Then
// 人間役の行動
End If

回答者: m.tamada さん , 回答日時: 2020/11/05 08:59



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