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