私はC#のコンソールアプリケーションで冒険的なテキストゲームに取り組んでいます。ユーザーがコマンドを正しく入力したかどうかを確認する方法 - C#
ユーザーがコマンドを正しく入力したかどうかをテストし、再度テストしないかどうかをテストする方法が必要です。
私は今、この権利をしようとしている:
do
{
Response = Console.ReadLine();
switch (Response.ToLower())
{
case "hallway":
Location = Locations[2];
Console.WriteLine("You decide to get some fresh air, and step out of the dance room and into the hallway." + "\n" + "There's no one here.");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Command List: Look, Look at, Move, Check Status");
Console.ResetColor();
ResponseTester();
break;
case "dance room":
//[Other code here]
break;
default:
Console.WriteLine("I'm sorry, I don't understand that.");
break;
}
}
while (Response.ToLower() != "hallway" || Response.ToLower() != "dance room");
を、それは非常に信頼性がないのですが、私は/ else文または他の用途は、それが一度だけテストする場合にそれを試みるときのように。より良いテスト方法がありますか?
ようにあなたは 'しばらく(TRUE){...} '無限ループ内に位置するユーザ入力と構文チェックを有することができます。さもなければ、 "それは一度しかテストされません" *という問題が何であるかははっきりしない。 – Sinatr
@Sintarユーザーが正しく入力しなかった場合、正しく入力できるようにループがリセットされません。私が移動を入力してから「廊下」を正しく綴らない場合は、もう一度試してみることをお勧めします。 –