private void PromptForDifficultyLevel() { TextEffects.DisplayLogo(); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 1"); Console.ResetColor(); Console.WriteLine(". Easy"); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 2"); Console.ResetColor(); Console.WriteLine(". Normal"); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 3"); Console.ResetColor(); Console.WriteLine(". Unbeatable"); Console.WriteLine(); int currentCursorTop = Console.CursorTop; while (true) { Console.Write(" Enter your choice: "); Console.ForegroundColor = TextEffects.NeutralColor; string userInput = Console.ReadLine().Trim(); Console.ResetColor(); switch (userInput) { case "1": Console.Clear(); DifficultyLevel = 1; return; case "2": Console.Clear(); DifficultyLevel = 2; return; case "3": Console.Clear(); DifficultyLevel = 3; return; default: //erase prompt, write error message, erase message, reset cursor Console.SetCursorPosition(0, currentCursorTop); Console.Write(" ", Console.WindowWidth); Console.SetCursorPosition(0, currentCursorTop); Console.ForegroundColor = TextEffects.ErrorColor; Console.Write(" Enter 1, 2, or 3... "); Thread.Sleep(1000); Console.ResetColor(); Console.SetCursorPosition(0, currentCursorTop); Console.Write(" ", Console.WindowWidth); Console.SetCursorPosition(0, currentCursorTop); break; } } }
private int PromptForGameMode() { TextEffects.DisplayLogo(); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 0 "); Console.ResetColor(); Console.WriteLine("Players"); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 1 "); Console.ResetColor(); Console.WriteLine("Player"); Console.ForegroundColor = TextEffects.NeutralColor; Console.Write(" 2 "); Console.ResetColor(); Console.WriteLine("Players"); Console.WriteLine(); int currentCursorTop = Console.CursorTop; while (true) { Console.Write(" Enter your choice: "); Console.ForegroundColor = TextEffects.NeutralColor; string userInput = Console.ReadLine().Trim(); Console.ResetColor(); switch (userInput) { case "0": Console.Clear(); return(0); case "1": Console.Clear(); PromptForDifficultyLevel(); Console.Clear(); return(1); case "2": Console.Clear(); return(2); default: //erase prompt, write error message, erase message, reset cursor Console.SetCursorPosition(0, currentCursorTop); Console.Write(" ", Console.WindowWidth); Console.SetCursorPosition(0, currentCursorTop); Console.ForegroundColor = TextEffects.ErrorColor; Console.Write(" Enter 0, 1, or 2... "); Thread.Sleep(1000); Console.ResetColor(); Console.SetCursorPosition(0, currentCursorTop); Console.Write(" ", Console.WindowWidth); Console.SetCursorPosition(0, currentCursorTop); break; } } }
private Player PromptToCreatePlayer(string mark = null) { TextEffects.DisplayLogo(); int currentCursorTop = Console.CursorTop; string userInput = null; if (mark == null) { bool validInput = false; //prompt for their choice of mark while (!validInput) { Console.WriteLine(" X goes first. "); Console.WriteLine(); Console.Write(" Would you like to be "); Console.ForegroundColor = TextEffects.XMarkColor; Console.Write("Xs "); Console.ResetColor(); Console.Write("or "); Console.ForegroundColor = TextEffects.OMarkColor; Console.Write("Os"); Console.ResetColor(); Console.Write("? "); Console.ForegroundColor = TextEffects.NeutralColor; userInput = Console.ReadLine().Trim().ToUpper(); Console.ResetColor(); switch (userInput) { case "X": case "XS": mark = "X"; Console.SetCursorPosition(0, currentCursorTop); Console.Write(" "); Console.Write(" "); Console.Write(" "); Console.Write(" "); Console.SetCursorPosition(0, currentCursorTop); validInput = true; break; case "O": case "OS": mark = "O"; Console.SetCursorPosition(0, currentCursorTop); Console.Write(" "); Console.Write(" "); Console.Write(" "); Console.Write(" "); Console.SetCursorPosition(0, currentCursorTop); validInput = true; break; default: Console.SetCursorPosition(0, currentCursorTop); Console.WriteLine(); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); Console.SetCursorPosition(0, currentCursorTop); Console.ForegroundColor = TextEffects.ErrorColor; Console.WriteLine(" Enter X or O... "); Console.ResetColor(); Thread.Sleep(1000); //erase the error message and reset cursor Console.SetCursorPosition(0, currentCursorTop); Console.Write(" ", Console.WindowWidth); Console.SetCursorPosition(0, currentCursorTop); continue; } } } ConsoleColor playerTextColor = mark == "X" ? TextEffects.XMarkColor : TextEffects.OMarkColor; while (true) { //space it over Console.Write(" "); Console.Write("Player \""); Console.ForegroundColor = playerTextColor; Console.Write(mark); Console.ResetColor(); Console.Write("\" please enter your name: "); Console.ForegroundColor = playerTextColor; userInput = Console.ReadLine(); Console.ResetColor(); if (userInput.Length < 1) { Console.SetCursorPosition(0, currentCursorTop); Console.ForegroundColor = TextEffects.ErrorColor; Console.WriteLine(" Please try again... "); Console.ResetColor(); Thread.Sleep(800); //erase the error message and reset cursor Console.SetCursorPosition(0, currentCursorTop); Console.Write(" "); Console.SetCursorPosition(0, currentCursorTop); continue; } else if (userInput.Length > 12) { Console.SetCursorPosition(0, currentCursorTop); Console.ForegroundColor = TextEffects.ErrorColor; Console.WriteLine(" Sorry, your name can only be 12 characters long. "); Console.ResetColor(); Thread.Sleep(1500); //erase the error message and reset cursor Console.SetCursorPosition(0, currentCursorTop); Console.Write(" "); Console.SetCursorPosition(0, currentCursorTop); continue; } Console.SetCursorPosition(0, currentCursorTop); Console.Write(" "); Console.SetCursorPosition(0, currentCursorTop); break; } //say hello to the player in their color, then erase message Console.ForegroundColor = playerTextColor; //space it over Console.Write(" "); Console.Write("Hello, " + userInput + "!"); Thread.Sleep(1000); Console.Clear(); Console.ResetColor(); //return new Player(userInput, mark, false, playerTextColor); return(new Player() { Mark = mark, Name = userInput, TextColor = playerTextColor }); }