switchで帰宅を命じられる理由

 Suzumeさんより質問がありましたので理由です。
 とりあえずですが「家に帰れ」は単に揶揄です。(一応)

 そしてなぜそうした揶揄されることなのかと言えばC++(Cでも……なんですが)でこういう書き方はありえないからです。
 executeメソッドは(ゲームだと)毎フレーム呼ばれる「実行処理」であって、クラスがタスクとかに登録されているものと思ってください。(定期的に呼ばれるTimerメソッドと同じように考えてもOKです)

 とすると、ミニゲームなら少なくとも、
 class CRaceGame : public CTask {
 class CBingoGame : public CTask {
 的にタスクのインターフェイスを持つクラスにすることで振る舞い(executeの実行内容)を変えることができるわけで、一つのクラスの中に二つのゲームの内容を書かなければならない理由はまるでありません。
 CならCで恐らく関数ポインタを使ったタスク(個々のゲームごとにinitHogeGame,execHogeGame,exitHogeGame的な関数をstructに押し込んでタスクに登録する)で実装になると思います。
 なので、こういう場合にswitchを使うことはほぼあり得ないです。
 しかも、対象のソースをもうちょっと詳しく書くと、(変数名は仮です)

void execute() {
    switch( ... ) {
    case HOGE_GAME:
        // ミニゲーム1の処理(例えばレースゲーム)
        swtich( scene ) {
        case INIT:
            break;
        case READY:
            break;
        case READY_GO:
            break;
        case RACING:
            break;
        case GOAL:
            break;
        }
        break;
    case FOO_GAME:
        // ミニゲーム2の処理(例えばビンゴゲーム)
        switch( scene ) {
        case INIT;
            // 延々同じような処理
        }
        break;
    }
}

 のようになっていました。
 この人はclassの使い方を明らかに違えており、この人がもし2つでなく3つや4つ(あるいは10)のミニゲームを担当した場合に頭痛の種になること間違いなしです。
 まだ何か不明な点があればお知らせくださいまし。