MAS コミュニティ
artisoc質問用掲示板

質問 (解決済み)

[artisocモデル] GetCountStep()の使い方-鳥モデルでの利用-
質問者: takaakiOさん , 質問日時: 2018/06/09 01:37
artisoc初心者です。
現在、artisoc初級チュートリアルのPDFを見ながら鳥モデルを動かしています。

・30匹までステップごとに鳥を出現させたい
→現状の問題①同時に30匹出現してしまう。
     ②現在のステップ数をコンソール画面に表示するよう命令しているが、0にしかならない。

Univ_Init{
Dim ctstep As Long
ctstep = GetCountStep()
Println(ctstep)

}

Univ_Step_Begin{
if(GetCountStep() < 30) then
CreateAgt(Universe.oozora.tori)

End if

}

Univ_Step_End{

}

上記のように命令しています。
GetCountStepの意味自体を誤って理解しているのかもしれません。
もしよろしければ、具体的な説明を伺えればと思います。
よろしくお願い致します。



▼解決した回答


artisoc初級チュートリアルの内容は知りませんが、
②については、ルールの実行順序を理解していないこと原因です。
Uni_Initはシミュレーションの開始時に1回だけ実行される部分ですので、当然ここのステップ数は0です。ステップを計測するならば、Univ_Step_BeginかUniv_Step_Endでないと意味がありません。
①については、コード部分で同時に30匹出現になるような原因はないようです。コードの部分ではなく、他に原因があると思います。例えば、エージェントのプロパティの数を確認してみてください。もしかして、30となっていませんか?

回答者: igaguri さん , 回答日時: 2018/06/10 12:25

▼ 全ての回答


artisoc初級チュートリアルの内容は知りませんが、
②については、ルールの実行順序を理解していないこと原因です。
Uni_Initはシミュレーションの開始時に1回だけ実行される部分ですので、当然ここのステップ数は0です。ステップを計測するならば、Univ_Step_BeginかUniv_Step_Endでないと意味がありません。
①については、コード部分で同時に30匹出現になるような原因はないようです。コードの部分ではなく、他に原因があると思います。例えば、エージェントのプロパティの数を確認してみてください。もしかして、30となっていませんか?

回答者: igaguri さん , 回答日時: 2018/06/10 12:25
ご回答ありがとうございます。
解決することができました。

②について、Univ_Step_Beginに記入したことにより、ステップ数がしっかりカウントされるようになりました。またそれと同時に、ステップ数の概念が理解できました。
①に関しては、生成スピードが速すぎたために同時に出現しているように見えていただけでした。カウントが数字化されたことにより気付くことができました。
ありがとうございました。

回答者: takaakiO さん , 回答日時: 2018/06/10 13:06

MASコミュニティ
掲示板TOP







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