アー作り直したい。リファクタリングしたい。構成練り直したい。

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by taketoshi » 11年前

どうも。僕です。

リファクタリング、構成練り倒したい病が発症しました。
変数があっちこっちにちらばってるのはまだしも。
シーン管理が上手く出来ていないのでかなりスパゲッティになってきました。
状態遷移の中に状態遷移があるのが耐えられない。何か良い方法無いですか?
(フィールド画面内[nGameTransfer]でプレイヤーターン[nTransfer]であり、更に攻撃する敵を選択中[nPlayerTransfer]とそれぞれに状態遷移有り)

酷い状態のゲーム本体部分の関数を晒しておきます
► スポイラーを表示
進捗はSRPGの戦闘内部を実装し、内部データ上は敵を抹殺し画面上から消す所までいったので
これから暫く見通しを良くするためにリファクタリングします。

ISLe
記事: 2650
登録日時: 14年前

RE: アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by ISLe » 11年前

taketoshi さんが書きました:状態遷移の中に状態遷移があるのが耐えられない。何か良い方法無いですか?
そもそも状態遷移をswitchで実装しているのが問題かと。
ある程度大きくなると全体を見渡せなくなりますからね。

ステートを、オブジェクトが存在するかどうか、で表すとポインタやリストを使ってスッキリしたコードになりますよ。
最後に編集したユーザー ISLe on 2014年1月26日(日) 16:02 [ 編集 1 回目 ]

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by taketoshi » 11年前

>>ISLeさん
。>そもそも状態遷移をswitchで実装しているのが問題かと。
そう思ってました。本当にそう思っています。
みんなほんとに巨大なゲームの状態遷移をswitchでやってるの?って今も思ってます。

>ステートを、オブジェクトが存在するかどうか、で表すとポインタやリストを使ってスッキリしたコードになりますよ。
仰ることの前半は解るんですが、後半が解りません。
簡単なサンプルコードをお願いできませんか?崩壊する前になんとかしたいです。

/*追記*/
http://dixq.net/g/sp_05.html
ここで行けそうなのでちょっと行ってきます。
最後に編集したユーザー taketoshi on 2014年1月26日(日) 16:15 [ 編集 1 回目 ]

dic
記事: 658
登録日時: 14年前

Re: アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by dic » 11年前

はじめましてかな? dicです。

switch case 文だらけで、あれま~ですが、
http://dixq.net/g/sp_06.html
ここを参考にするのがいいかなと思います。
使ってる機能は、C++で継承、ポリモーフィズムですね

かくいう私も、switch case 文だらけでしたけど、
これを機に Stateパターンできれいにせねば。

アバター
へにっくす
記事: 634
登録日時: 13年前

Re: アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by へにっくす » 11年前

taketoshi さんが書きました:>ステートを、オブジェクトが存在するかどうか、で表すとポインタやリストを使ってスッキリしたコードになりますよ。
仰ることの前半は解るんですが、後半が解りません。
簡単なサンプルコードをお願いできませんか?崩壊する前になんとかしたいです。
そんなあなたにこれをささげます。dicさんもちらっと言ってますが・・・
●デザインパターン編 第15章 Stateパターン
Stateパターンのどこがすごいのか、感心されたので、書いてみる
最後に編集したユーザー へにっくす on 2014年1月28日(火) 04:52 [ 編集 2 回目 ]

taketoshi
記事: 222
登録日時: 14年前
住所: 日本国

Re: アー作り直したい。リファクタリングしたい。構成練り直したい。

投稿記事 by taketoshi » 11年前

dicどの
へにっくすどの

サンプルご提示ありがとうございます。
親クラスのポインタに子クラスの参照を放り込んで多態性を持たせる処理は理解しておるのですが
ここまで肥大化したswitch文をどのように整理し、ご提示いただいた方法を組み込む方法に苦戦しています。アチャー・・・。

作り直した方がいいのか突き進んだ方がいいのか迷っています。