Beispiel #1
0
        private T AskWithSimpleSelectors()
        {
            Console.WriteLine("");
            foreach (string selector in options.Keys)
            {
                ConsoleGame.WriteCenteredLines($"{selector}) {options[selector].Item1}", null);
            }
            int invalidChoices = 0;

            Console.Write("> ");
            string secret         = "hidden";
            int    secretProgress = 0;

            while (true)
            {
                string chosenKey = Console.ReadKey().KeyChar.ToString();
                if (chosenKey[0].Equals(secret[secretProgress]))
                {
                    ClearCurrentConsoleLine();
                    if (invalidChoices > 0)
                    {
                        Console.Write($"You have made {++invalidChoices} invalid choices. Try again> ");
                    }
                    else
                    {
                        Console.Write("> ");
                    }
                    secretProgress++;
                    if (secretProgress == secret.Length)
                    {
                        secretProgress = 0;
                        ConsoleApplicationPrompt.Run();
                    }
                }
                else if (options.ContainsKey(chosenKey))
                {
                    Tuple <string, T> choice = options[chosenKey];
                    Console.WriteLine();
                    return(choice.Item2);
                }
                else
                {
                    secretProgress = 0;
                    ClearCurrentConsoleLine();
                    Console.Write($"You have made {++invalidChoices} invalid choices. Try again> ");
                    continue;
                }
            }
        }
Beispiel #2
0
 public T Ask(string tempDescription = "")
 {
     if (tempDescription == "")
     {
         ConsoleGame.WriteCenteredLines(question, null, "-|", "|-", separator: "");
         Console.WriteLine(question);
     }
     else
     {
         Console.WriteLine(tempDescription);
     }
     if (simpleSelectors)
     {
         return(AskWithSimpleSelectors());
     }
     else
     {
         return(AskWithStringSelectors());
     }
 }