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

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


stagefuncs.cpp

01/*
02 * シューティングゲームなどでステージ処理を分かり易く関数に分割した例
03 */
04  
05/* このステージで生き抜いたら1、死んだら0を返す */
06int stage1() {
07    /* ステージ1の処理 */
08    while( 1 ) {
09        /* 無限ループ内でゲームの処理を行う */
10        if( プレイヤーの負け ) return 0;
11        if( ステージクリア ) break;
12    }
13    return 1;
14}
15  
16/* このステージで生き抜いたら1、死んだら0を返す */
17int stage2() {
18    /* ステージ2の処理 */
19}
20  
21/* このステージで生き抜いたら1、死んだら0を返す */
22int stage3() {
23    /* ステージ3の処理 */
24}
25  
26void goodEnding() {
27    /* グッドエンディング表示 */
28}
29  
30void badEnding() {
31    /* バッドエンディング表示 */
32}
33  
34int main( void ) {
35  
36    if( stage1() == 0 ) {
37        badEnding();
38        return 0;
39    }
40  
41    if( stage2() == 0 ) {
42        badEnding();
43        return 0;
44    }
45     
46    if( stage3() == 0 ) {
47        badEnding();
48        return 0;
49    }
50  
51    goodEnding();
52  
53    return 0;
54}