예제 #1
0
 static public void Ask() // Parses the user input
 {
     if (Program.winCondition)
     {
         ;
     }                           // skips to victory screen if you've already won
     else if (Program.turns > 0) // checks if you have any turns remaining
     {
         string command = "";
         if (Program.wantReset && Program.resetStep < Program.saveFile.Count)
         {
             command = Program.saveFile[Program.resetStep];
             Console.WriteLine($"> {command}");
             Program.currentLog.Add(command);
             Program.resetStep++;
             Program.turns--;
             if (Program.resetStep >= Program.saveFile.Count)
             {
                 Program.wantReset = false;
             }
         }
         else
         {
             while (String.IsNullOrWhiteSpace(command))
             {
                 Console.Write($"\nYou have {Program.turns} turns left. What would you like to do? ");
                 command = Console.ReadLine().ToLower();
                 Program.turns--;
                 Program.currentLog.Add(command);
                 if (Program.turns < 1)
                 {
                     break; // ends loop if you're out of turns
                 }
             }
         }
         if (!String.IsNullOrWhiteSpace(command))
         {
             List <string> commands = new List <string>(command.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
             TranslateInput(ref commands);
             if (command == "insert batteries into flashlight")
             {
                 Temp_Four_Word_Commands.InsertBatteriesInToFlashlight();
             }
             else if (command == "insert batteries into tapedeck")
             {
                 Temp_Four_Word_Commands.InsertBatteriesInToTapeDeck();
             }
             else if (command == "insert batteries into tape deck")
             {
                 Temp_Four_Word_Commands.InsertBatteriesInToTapeDeck();
             }
             else if (command == "insert batteries into tape player")
             {
                 Temp_Four_Word_Commands.InsertBatteriesInToTapeDeck();
             }
             else if (commands.Count == 1)
             {
                 OneWordCommands.Parse(commands);
             }
             else if (commands.Count == 2)
             {
                 TwoWordCommands.Parse(commands);
             }
             else
             {
                 MultiWordCommands.Parse(commands);
             }
             Ask();
         }
     }
     else
     {
         Console.WriteLine("No turns left!");
     }
 }
예제 #2
0
 static public void Parse(List <string> oneWord)
 {
     if (validOneWordCommands.Contains(oneWord[0]))
     {
         if (oneWord[0] == "win")
         {
             Win();                      // does series of if/else if checkes to determine which method to operate
         }
         else if (oneWord[0] == "explore")
         {
             Explore();
         }
         else if (oneWord[0] == "inventory")
         {
             Inventory();
         }
         else if (oneWord[0] == "move")
         {
             Move();
         }
         else if (oneWord[0] == "access")
         {
             Access();
         }
         else if (oneWord[0] == "save")
         {
             Save();
         }
         else if (oneWord[0] == "load")
         {
             Load();
         }
         else if (oneWord[0] == "help")
         {
             Help();
         }
         else
         {
             Console.WriteLine("Invalid command!");
         }
     }
     else if (TwoWordCommands.validTwoWordCommands.Contains(oneWord[0]) || MultiWordCommands.validMultiWordCommands.Contains(oneWord[0]))
     {
         Console.Write($"{oneWord[0]} what? "); // asks for more works if command is recognized but not complete
         List <string> commands = new List <string>(Console.ReadLine().ToLower().Split(default(string[]), StringSplitOptions.RemoveEmptyEntries));
         Prompt.TranslateInput(ref commands);
         if (oneWord[0] != commands[0])
         {
             commands.Insert(0, oneWord[0]);                            // checcks to see if original verb was repeated
         }
         if (commands.Count == 1)
         {
             Parse(commands);
         }
         else if (commands.Count == 2)
         {
             TwoWordCommands.Parse(commands);
         }
         else
         {
             MultiWordCommands.Parse(commands);
         }
     }
     else
     {
         Console.WriteLine("Invalid Command");
     }
 }