たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

スパゲッティはお腹いっぱい

そういやリファクタリングとかをやろうと思って
ずいぶん長いこと放置していた ZeitungM/MoyougaeEndless · GitHub

とりあえず改善したいところを挙げていってみよう。

全般

  • ループ内のみで使う変数はループ文内に含める
  • White はいっそ定数として宣言する

crossDraw.cpp

  • DrawView()
    • ゲーム盤ってなんぞ?
    • for文内にコメントを書く
  • DrawGameOver()
    • ゲームオーバー時にどんな処理をしているのか
  • DrawCursor()
    • DrawCursor2()とどっちかにしろ
  • DrawCursor()
    • c はブロックの何の情報なのか
  • DrawTimer()
    • どこで何を描いているのかわからない
  • DrawCharachter()
  • GetRGB()
    • コメントを書く

crossEndless.cpp

  • InitialVisited()
  • int Delete()
    • Erase()と名前がややこしい→Countほげほげとか
    • d って何やねん
    • 変数nを全く違う用途に使いまわしている
  • Erase()
    • 関数名を何とかする
  • CompactRow()
    • flag とは何のフラグか
  • StandbyStack()
    • 全体のvisitedを初期化する必要はあるのか
    • 勝手に消えないように判定する処理が何故 n>=ERASABLE_N-1 なのか
  • CheckErasable
    • 参照渡しをしない方法はないのか
  • GetHitKeyStateAll_2
    • コメントぐらい書こう、な?
  • StartGame()
    • 後でフローチャートにでも書きながらやらないと無理だこれ
    • とりあえずgoto文はやめろ
  • WinMain()

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]はまだ使われてる?

あと素材はここに入れておくべきではないような気がしました。まる。