現在作成しているモデルのエージェントpeopleのdef people_returnにて、最後にpeopleをuniverse.point_name_dict["port"]に戻すようにしており、これがシミュレーションの動き(動画)に反映されません。 直前のprint(Universe.current_time, f"作業員が風車{self.maintenance_point}から帰港")はprintされているため、if文自体は通っているはずなのですが、動きに反映されない理由がわからず困っております
top of page

bottom of page
何度もすみません。現在作業可能時間外になると、一度作業を止めて帰港し、翌日の作業可能時間になるとまた作業を開始するようにしたいと考えております。Universe.call_ship_dict[self.maintenance_point] = primeとし、shipの方で優先的にmaintenanceのpointになるように設定していますが、うまく動きません。Univesr.call_ship_dictをprintすると、まず作業員帰港後はself.mainteance_point=Noneにしているのに、なっていないという問題が1点と、primeにはなっているのに、翌日選ばれないという問題を抱えております。
モデルを拝見したところ、peopleはshipに乗って、故障したturbineの修理に行くようです。
コンソール画面のログを見ると、shipは移動しているようですが、表示上のshipは移動していません。
また、peopleは1番はじめのturbineに移動したあと、表示上移動しません。
おそらく、peopleとshipの状態と表示が合っていないのではないかと思います。
例えば、shipエージェントのship_movementのelse以下をコメントアウトするとshipが故障したturbineの場所に表示されるということは、shipは故障したturbineしたあとに瞬間的に港に戻ってきていると思います。
まずは、shipが設計通りに動くようにして、そのあとpeopleが設計通りに動くようにすればよいと思います。