「PCには触れられないが、空いた時間がある」なんて時にも設計を考えて、コーディングできるときには、コードを書くだけ、というのが一番理想的なのかな。大体バグや知らないことで時間食うんだろうけど。
今回作ってみた物を参考にして、ゲームの設計を考えてみると、StatePatternとそのマネージャ,窓口,状態たち,で「ある状態の操作」を扱う構造が階層をつくり、木構造のような設計図になった。状態の切り替えはよほど小さくない限りStatePatternで作る・出来るだけ互いのクラスの依存性を下げる、という構造を目標としたからクラス数が膨れ上がった。把握している条件の切り替えに関係するものだけで60近い。大丈夫か・・・? 似たような構造も少なくないから半分くらいに減らせないかな・・・
切り替え制御のManager,外部からの情報窓口Facade,状態親クラスあわせて3個,そして子クラスN個。ひとつの状態の切り替えだけでN+3個のクラスってどうなの・・・ 相場が分からない。
Stateの子クラスをさらに継承して状態ごとの実装のクラス作るということも考えたけど、う~ん。切り替えと切り替えられる状態は相互に依存しないとは思うけど、まとめてしまっても今回くらいなら問題なさそう。ゲームくらい大規模だと分けるべきかな。
とりあえずmainだけ。不要なファイルをincludeしたままになっているのは過去の名残・・・ この部分はすごくすっきりしてよかった。
//////////main.cpp////////////////
#include
#include
#include"GameProgress.h"
#include"GameProgSwitcher.h"
int main(){
using namespace std;
GameProgSwitcher* GPSwitcher = GameProgSwitcher::Make_GameProgSwitcher();
while(1){
GPSwitcher->Receive_GameProg();
GPSwitcher->Renew_GameProg();
GPSwitcher->Prosess_GameProg();
}
return 0;
}