Exemple #1
0
 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);
 }
Exemple #2
0
        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);
        }
Exemple #3
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();
            }
        }
Exemple #5
0
        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);
                }
            }
        }