2025/03/24(8日目)実施内容
FlowProcessor
の中身を実装(フローチャートの実装)
GameMaster とその配下の構成
GameMaster
- プレイヤー情報とゲーム進行を持つ
- 都度,子に情報を提供して処理させる
InitGame
- ロボットを初期配置に配置する
- プレイヤー情報のインスタンス生成
GamePlaying
- ゲーム進行中の制御関連を持つ
FinishGame
- ゲーム終了後の制御関連を持つ(ShowResultと統合)
GameMaster に並ぶ構成
本ゲームで扱うフローチャートや当たり判定等を扱う
FlowProcessor
- フローチャートのノードデータの表現や処理を実装する
私はフローチャートなんか実装したことないので,とりあえず実装方法をググる
-> プログラミング入門のような,「チャート->プログラム」のようなものしか出てこないため結局自分で考えることに
フローチャートの実装
(箱庭とは直接関係ない話になっていってる...)
フローチャートのノードを知る
- 端子(Terminator):開始,終了を表す
- 処理(Process):処理を表す
- 判断(Decision):条件分岐を表す
- その他(結合子,書類,データなど)
今回は端子,処理,判断のみ実装
実装構成
-
NodeInfo
スーパークラス-
<string> state
メンバ変数:内容を表す -
<int> id
メンバ変数:ノードの識別子を表す -
<int> nextNode1
メンバ変数:1つ先のノード(1個目)の識別子を表す -
TermNode
サブクラス -
ProcNode
サブクラス-
<int> time
メンバ変数:命令の持続時間を表す
-
-
DeciNode
サブクラス-
<int> nextNode2
メンバ変数:1つ先のノード(2個目)の識別子を表す
-
-
-
ControllFlow
クラス-
<List<TermNode>> terms
メンバ変数:端子集合の格納場所 -
<List<ProcNode>> procs
メンバ変数:処理集合の格納場所 -
<List<DeciNode>> decis
メンバ変数:判断集合の格納場所 -
findNode -> ProcNode
メソッド:<int> id
が与えられると,一致する処理ノードを返す -
findNode -> DeciNode
メソッド:<int> id
が与えられると,一致する判断ノードを返す -
InsertProcNode -> void
メソッド:現在選択中のノードと,処理ノードを作成する上で必要な値(この時,作成されるノードの次ノードを指定できるようにしてある)が与えられると,それに応じた処理ノードを,選択中ノードの直後に挿入する -
InsertDeciNode -> void
メソッド:現在選択中のノードと,判断ノードを作成する上で必要な値(この時,作成されるノードの次ノードを指定できるようにしてある)が与えられると,それに応じた判断ノードを,選択中ノードの直後に挿入する
-
あとは削除,編集の実装まで済ませてテスト!!(次回はここから)