スパゲッティはお腹いっぱい
そういやリファクタリングとかをやろうと思って
ずいぶん長いこと放置していた ZeitungM/MoyougaeEndless · GitHub
とりあえず改善したいところを挙げていってみよう。
全般
- ループ内のみで使う変数はループ文内に含める
- White はいっそ定数として宣言する
crossDraw.cpp
- DrawView()
- ゲーム盤ってなんぞ?
- for文内にコメントを書く
- DrawGameOver()
- ゲームオーバー時にどんな処理をしているのか
- DrawCursor()
- DrawCursor2()とどっちかにしろ
- DrawCursor()
- c はブロックの何の情報なのか
- DrawTimer()
- どこで何を描いているのかわからない
- DrawCharachter()
- GetRGB()
- コメントを書く
crossEndless.cpp
- InitialVisited()
- InitializeVisited()に変更
- マジックナンバー:0→UNVISITED とか
- int Delete()
- Erase()と名前がややこしい→Countほげほげとか
- d って何やねん
- 変数nを全く違う用途に使いまわしている
- Erase()
- 関数名を何とかする
- CompactRow()
- flag とは何のフラグか
- StandbyStack()
- 全体のvisitedを初期化する必要はあるのか
- 勝手に消えないように判定する処理が何故 n>=ERASABLE_N-1 なのか
- CheckErasable
- 参照渡しをしない方法はないのか
- GetHitKeyStateAll_2
- コメントぐらい書こう、な?
- StartGame()
- 後でフローチャートにでも書きながらやらないと無理だこれ
- とりあえずgoto文はやめろ
- WinMain()
- マジックナンバー
- restart とは一体
header.h
- header.h ってファイル名がまず何やねん
- 定数、関数のプロトタイプ、構造体、グローバル変数の宣言で分けるべき?
- 定数名が不適切
- WIDTH, HEIGHT:ステージの大きさ(これだけじゃわからない)
- INIT_HEIGHT:ゲーム開始時に空白になるマス
- BLOCK_NUM:ブロックの種類(typeとかつけよう)
- SPACE_TOP, SPACE_LEFT:ウィンドウとステージのマージン
- BLANK:ブロックの横の間隔
- CURSOR_R:カーソルの半径
- SCORE_Y:スコア表示のY座標
- TIMER関連の定数なんて何を意味しているのか(そもそも全部使われているのか)
- block構造体
- valueはcolorとかにしよう
- visited は boolean 型にするべきでは?
- グローバル変数 TIMER[7]はまだ使われてる?
あと素材はここに入れておくべきではないような気がしました。まる。