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

質問  (回答受付中)

[artisocモデル] エージェントのカウント
質問者: rd0052hvさん , 質問日時: 2018/01/16 03:19
立ち止まったエージェント数をカウントするために以下のようなルールを用いて動かして見たところ、mihinansyaが急速に数が増えてしまいます。
立ち止まったエージェントだけを数えたい時には、どのように変更すれば正しくカウントできますでしょうか。
ご教授お願いいたします。

lastTargetPointAgt = Universe.Map.Point(CInt(GetToken(My.RouteArray, My.RouteCount-1)))
targetPointAgt = Universe.Map.Point(CInt(GetToken(My.RouteArray, My.RouteCount)))
streetAgt = @get_street_from_points(lastTargetPointAgt.ID, targetPointAgt.ID)
If streetAgt.Cost == 10000 Then
// 立ち止まる
My.Color = COLOR_GREEN
Universe.mihinansya = Universe.mihinansya + 1
ElseIf My.RouteCount < CountToken(My.RouteArray) Then
// 経路に沿って進む
targetPointAgt = Universe.Map.Point(CInt(GetToken(My.RouteArray, My.RouteCount)))
distance = Pursue(targetPointAgt, speed)



▼ 全ての回答


コードだけ一部をベタ張りされても、回答できません。
あなたの条件が正しい場合、
mihinansyaが上がるのは、ただ単に初期化していないからだけではないのですか?

回答者: igaguri さん , 回答日時: 2018/01/16 09:23
回答ありがとうございます。
初期化をしているのですがやはり急激に増えてしまいます。
おそらく全てのエージェントを数えてしまっているのですが、
立ち止まったエージェントだけを数えるのは可能でしょうか?

回答者: rd0052hv さん , 回答日時: 2018/01/16 13:13
じゃあ、ルールに問題があるのでしょう。
If文のなかに入らない場合あるのかどうかか、println()でstreetAgt.Costの中身をみるなどして、デバックしてみてください。
まずはそれです。

回答者: igaguri さん , 回答日時: 2018/01/16 13:20



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