シューティングゲームのステージの流れを関数を使ってスマートに表すアイディア

●以下の様に,各ステージの処理を関数にまとめると良い。
 ・main()関数の中身が分かり易くなる(処理の流れが一目瞭然)。
 ・各関数を異なる開発スタッフが担当するなど,分業にも適している。
 ・一人でプログラムを作る場合も,関数を作成している間は,その関数の処理に集中して開発できる。


stagefuncs.cpp

 /*
 * シューティングゲームなどでステージ処理を分かり易く関数に分割した例
 */
 
/* このステージで生き抜いたら1、死んだら0を返す */
int stage1() {
    /* ステージ1の処理 */
    while( 1 ) {
        /* 無限ループ内でゲームの処理を行う */
        if( プレイヤーの負け ) return 0;
        if( ステージクリア ) break;
    }
    return 1;
}
 
/* このステージで生き抜いたら1、死んだら0を返す */
int stage2() {
    /* ステージ2の処理 */
}
 
/* このステージで生き抜いたら1、死んだら0を返す */
int stage3() {
    /* ステージ3の処理 */
}
 
void goodEnding() {
    /* グッドエンディング表示 */
}
 
void badEnding() {
    /* バッドエンディング表示 */
}
 
int main( void ) {
 
    if( stage1() == 0 ) {
        badEnding();
        return 0;
    }
 
    if( stage2() == 0 ) {
        badEnding();
        return 0;
    }
    
    if( stage3() == 0 ) {
        badEnding();
        return 0;
    }
 
    goodEnding();
 
    return 0;
}