1

テキストアドベンチャーゲームのコーディングを行っています。ゲームの開始時に、Menu(string Choice, bool takenDump) が呼び出されます。ポケモンの遭遇など、ユーザーが遭遇する可能性のあるさまざまなシナリオを持つ他の方法がいくつかあります。ユーザーが死亡すると、Menu() で再起動します。つまり、ユーザー自身から再度呼び出されます。これを回避する方法はありますか? プログラムのソース

4

3 に答える 3

3

いいえ、それ自体からメソッドを呼び出すことはまったく問題ありません-名前は「再帰」/「再帰関数」です。

あなたの特定のケースでは、それは絶対に必要ではありません(そしておそらく間違っています)。トップレベルのゲーム コードは、再帰ではなく無限ループのように見えることがよくあります。

 while (continuePlaying)
 { 
    ResetLevels_Lives_AndEverything(); 
    while(notDead)
    {
       handleInput()
       draw()
       notDead = ChechStillAlive();
    }
    continuePlaying = CheckContinuePlaying();
 }
于 2013-10-04T21:44:55.963 に答える
1

再帰を使用する際に注意すべきことの 1 つは、スタック オーバーフローです。あなたがやろうとしていることの問題のようには見えませんが、メソッドがそれ自体を複数回呼び出し、それらの呼び出しのそれぞれがそれを複数回呼び出す場合、それは起こります (合理的な制限を設定しない限り)あなたがどれだけ深く行くかのレベル)。フラクタル、階乗、フィボナッチ数列を考えてみてください。

于 2013-10-04T22:02:19.000 に答える