今ぱっと見た感じループのネスト多いとか
グローバル変数無駄に使いすぎとか
マジックナンバーがところどころに出現が気になるな。
switchはCベタ書きだとあんなものなのか?