0

テキストアドベンチャーゲームのコーディングを行っています。プログラムが実行されると、Boot()メソッドが呼び出され、ファイルを設定するために %APPDATA%.ilan\texert が読み込まれます (一方、username.txt しかありません)。の後Boot()、 に移動しMainMenu()、ユーザーは再生、オプションへの移動、または終了を選択できます。ユーザーが [オプション] メニューに移動して戻ってきてから、ゲームをプレイするか、オプション メニューに戻ろうとすると、ゲームが終了しますが、これは発生するはずがありません。ソース
Boot()= 行 455
MainMenu()= 行 579
Main()= 行 504メソッド自体で が宣言されているためであり、メソッドが複数回呼び出されるため、変数は以前の値を保持して
いるためだと思います。これを修正する方法はありますか?intint

4

1 に答える 1

0

610 行目で MainMenu メソッドの結果を取得し、617 行目で OptionMenu メソッドを呼び出しますが、OptionMenu() メソッドが起動すると、制御が Main( ) 方法。OptionMenu() メソッドで MainMenu() を呼び出しても、その呼び出しの結果を評価するものは何もないため、メニューをコンソールに書き込んで Main() に戻るだけです。MainMenu() メソッドを繰り返し呼び出して選択した結果を評価する Main() メソッドにループを配置する必要があります。OptionMenu() などの他のメニュー オプションは、メイン メニュー自体を呼び出すのではなく、このループに戻ります。このようなもの:

string whatToDo = "null";
bool exitApp = false;
while (!exitApp)
{
    whatToDo = AdvTime.MainMenu();
    if (whatToDo.Contains("play"))
    {
        Menu("null", false);
    }
    if (whatToDo.Contains("options"))
    {
        AdvTime.OptionMenu();
    }
    if (whatToDo.Contains("exit"))
    {
        exitApp = true;
    }
    if (whatToDo.Contains("null"))
    {
        AdvTime.MMError("OM");
    }
}
于 2013-10-06T13:42:46.623 に答える