public int UserInputNumber() { WriteText.WriteLine("Please enter a number ranging from 1-10", ConsoleColor.DarkYellow); try { userNum = Convert.ToInt32(Console.ReadLine()); if (userNum > 0 && userNum < 11) { // guarding against invalid input WriteText.WriteLine($"You Selected {userNum}", ConsoleColor.DarkRed); // returning the entered value return(userNum); } else { WriteText.WriteLine("Please enter a valid number ranging from 1-10", ConsoleColor.Red); Console.ReadLine(); UserInputNumber(); } } catch (Exception) { WriteText.WriteLine("Caught Exception\nPlease try again", ConsoleColor.Red); Console.ReadLine(); UserInputNumber(); } return(userNum); }
public int BisectionMethod(int[] Algorithm, int userNum) { int LeftSide = 0; int RightSide = Algorithm.Length - 1; //Cuts array in half based on the User Input while (LeftSide <= RightSide) { //Finds the middle number in the current array int MiddleNumber = LeftSide + (RightSide - LeftSide) / 2; //Checks to see if the input falls within the small end of the array if (Algorithm[MiddleNumber] > userNum) { WriteText.WriteLine($"The current number range is {LeftSide+1}-{RightSide+1}", ConsoleColor.DarkYellow); RightSide = MiddleNumber - 1; WriteText.WriteLine($"your number is less than the middle number: {MiddleNumber+1}\tThe next Numbers to check is: {LeftSide+1}-{RightSide+1}\n", ConsoleColor.Yellow); } // Checks the input falling within the big end of the array else if (Algorithm[MiddleNumber] < userNum) { WriteText.WriteLine($"The current number range is {LeftSide+1}-{RightSide+1}", ConsoleColor.DarkYellow); LeftSide = MiddleNumber + 1; WriteText.WriteLine($"your number is more than the middle number: {MiddleNumber+1}\tThe next Numbers to check is: {LeftSide + 1}-{RightSide + 1}\n", ConsoleColor.Yellow); } // Last else returns the middle number to narrow down the search else { WriteText.WriteLine($"The Number fell in the middle of the above checked range your number was: {userNum}", ConsoleColor.DarkGreen); Console.ReadLine(); return(MiddleNumber); } } return(0); }
static void RunBisect() { bool tryagain = false; do { BisectInput input = new BisectInput(); input.UserInputNumber(); Bisection b = new Bisection(); int[] myArray = b.Algorithm; int num = input.userNum; b.BisectionMethod(myArray, num); WriteText.WriteLine("Would you like to try another number? type \"yes\" or \"no\""); string YesOrNo = Convert.ToString(Console.ReadLine()); if (YesOrNo.ToLower() == "yes") { Console.Clear(); tryagain = true; } else if (YesOrNo.ToLower() == "no") { tryagain = false; } else { WriteText.WriteLine("Invalid Entry defaulting as yes, please next time enter yes or no"); Console.ReadLine(); Console.Clear(); tryagain = true; } } while (tryagain == true); Console.ReadKey(true); menu.Show(); }
public void Guess() { Console.Clear(); WriteText.WriteLine("Lets see how many attempts it takes the computer\n" + "I'm rooting for you and that it took you less guesses!\n" + "Goodluck!\n", ConsoleColor.DarkYellow); Console.Write("Pick your number beetween 1 and 1,000:", ConsoleColor.DarkGreen); int userNum = 0; try { userNum = Convert.ToInt32(Console.ReadLine()); if (userNum > 0 && userNum < 1001) { WriteText.WriteLine($"You chose {userNum}:"); int LeftSide = 0; int RightSide = 1000; int MiddleNumber = -1; int ComputerAttempts = 1; while (userNum != MiddleNumber) { MiddleNumber = LeftSide + (RightSide - LeftSide) / 2; if (MiddleNumber > userNum) { RightSide = MiddleNumber; WriteText.WriteLine($"The Computer guessed {MiddleNumber}: on its {ComputerAttempts} attempt:", ConsoleColor.DarkRed); WriteText.WriteLine($"The computer now knows the number is somewhere between {LeftSide}-{RightSide}", ConsoleColor.DarkYellow); ComputerAttempts++; } else if (MiddleNumber < userNum) { LeftSide = MiddleNumber; WriteText.WriteLine($"The Compute guessed {MiddleNumber}: You explained your number was higher than that\n" + $"now the computer knows the number is somewhere between {LeftSide}-{RightSide}", ConsoleColor.DarkYellow); ComputerAttempts++; } else { WriteText.WriteLine($"Impressive; it only took the computer {ComputerAttempts} attempts to get it right\n" + $"but, honestly {userNum}? you could have chosen a better number", ConsoleColor.DarkGreen); Console.ReadLine(); } } } else { WriteText.WriteLine("Please Enter a valid number\n" + "Come on you have options here 1-1000 is a big range try again:", ConsoleColor.Red); Console.ReadLine(); Guess(); } } catch (Exception) { WriteText.WriteLine("Exception caught try again", ConsoleColor.Red); Console.ReadLine(); Guess(); } }
private void DrawLine(string text) { int start = 0; if (HorizontalAligment == MenuHorizontalAligment.Right) { start = Console.WindowWidth - text.Length - 1; } else if (HorizontalAligment == MenuHorizontalAligment.Center) { start = (Console.WindowWidth - text.Length) / 2; } Console.CursorLeft = start; WriteText.WriteLine(text); }
public void Guess() { Console.Clear(); int userGuess = -1; int attempts = 1; Random rnd = new Random(); int ComputerPick = rnd.Next(0, 1000); WriteText.WriteLine("Try to guess the number the computer has selected between 1-1000", ConsoleColor.Blue); WriteText.WriteLine("After each guess a hint will be displayed to help you place your next guess\n" + "How many attempts will it take?"); WriteText.WriteLine("Press enter to start", ConsoleColor.DarkGreen); Console.ReadLine(); while (userGuess != ComputerPick) { try { Console.Clear(); WriteText.WriteLine($"This is your {attempts} attemp:\t Input your guess:", ConsoleColor.DarkYellow); userGuess = Convert.ToInt32(Console.ReadLine()); if (userGuess > 0 && userGuess < 1001) { WriteText.WriteLine($"You chose {userGuess} on your {attempts} attempt", ConsoleColor.DarkYellow); //checking to see if the number is correct if (userGuess == ComputerPick) { WriteText.WriteLine($"You got it!\n" + $"it only took you {attempts} attempts", ConsoleColor.DarkGreen); WriteText.WriteLine("Press Enter to return to the Main Menu"); Console.ReadKey(); } //Checking to see if the number is higher than the computers random num else if (userGuess > ComputerPick) { WriteText.WriteLine("Your number is higher than the computers pick, try a little lower\n", ConsoleColor.DarkRed); attempts++; WriteText.WriteLine("Press Enter to guess again:"); Console.ReadKey(); } //Checking to see if its lower else if (userGuess < ComputerPick) { WriteText.WriteLine("Your number is lower than the computers pick, try a little higher\n", ConsoleColor.DarkRed); attempts++; WriteText.WriteLine("Press Enter to guess again:"); Console.ReadKey(); } } else { WriteText.WriteLine("Come on now your getting off track\n" + "Please input a valid number(that is gonna cost you an attempt)", ConsoleColor.Yellow); attempts++; Console.ReadLine(); } } catch (Exception) { WriteText.WriteLine("Exception Caught\n" + "Invalid input", ConsoleColor.Red); } } }