public bool IsHigherThan(GuessedNumber number) { if (actual > number.actual) { return(true); } return(false); }
static void NewGuess(GuessedNumber guessedNumber) { if (guessedNumber.IsLower() && currentGuess_belowRandom == null) { currentGuess_belowRandom = guessedNumber; } else if (!guessedNumber.IsLower() && currentGuess_aboveRandom == null) { currentGuess_aboveRandom = guessedNumber; } if (currentGuess_belowRandom != null && guessedNumber.IsHigherThan(currentGuess_belowRandom) && guessedNumber.IsLower()) { currentGuess_belowRandom = guessedNumber; } else if (currentGuess_aboveRandom != null && !guessedNumber.IsHigherThan(currentGuess_aboveRandom) && !guessedNumber.IsLower()) { currentGuess_aboveRandom = guessedNumber; } }
static void Main(string[] args) { currentGuess_aboveRandom = null; currentGuess_belowRandom = null; string firstUserInput = GetUserInput("Would you like to play a game? (y/n/m)", 1); bool userWantsToPlay = false; switch (firstUserInput) { case "y": userWantsToPlay = true; break; case "n": System.Console.WriteLine("Why are you even here?"); return; case "m": System.Console.WriteLine("You wont get anywhere in life with that amount of indecisiveness..."); Main(new string[] { "" }); return; default: Main(new string[] { "" }); return; } if (userWantsToPlay) { System.Console.WriteLine("Let's play a number guessing game. The higher your score, the worse you did!"); int minValue = GetUserInput("What should the low end of the range be?"); int maxValue = GetUserInput("What should the maximum number in the range be?"); int maxGuesses = GetUserInput("How many guesses should be allowed? (put 0 for infinite guesses)"); int randomValue = new Random().Next(minValue, maxValue + 1); int guessedNumber = -1; int numberOfGuesses = 0; bool exceededGuessLimit = false; do { Console.Beep(); Console.Clear(); System.Console.WriteLine(" -- You are guessing in the range " + minValue + "-" + maxValue + " --"); if (maxGuesses != 0) { System.Console.WriteLine("You have used " + numberOfGuesses + "/" + maxGuesses + " guesses"); } else { System.Console.WriteLine("You have guessed " + numberOfGuesses + " times"); } string result = ""; result += "Number is contained between: " + (currentGuess_belowRandom != null ? currentGuess_belowRandom.ToString() : minValue.ToString()) + " => { ?? } <= "; result += (currentGuess_aboveRandom != null ? currentGuess_aboveRandom.ToString() : maxValue.ToString()); System.Console.WriteLine(numberOfGuesses == 0 ? "No guesses yet" : result); guessedNumber = GetUserInput("Guess a number: "); numberOfGuesses++; NewGuess(new GuessedNumber(guessedNumber, randomValue)); if (maxGuesses != 0 && numberOfGuesses >= maxGuesses) { exceededGuessLimit = true; } }while (guessedNumber != randomValue && !exceededGuessLimit); Console.Clear(); if (maxGuesses != 0 && !exceededGuessLimit) { System.Console.WriteLine($"Correct! It took you {numberOfGuesses}/{maxGuesses} guesses to guess " + randomValue + " in the range of " + minValue + "-" + maxValue); } else if (maxGuesses != 0 && exceededGuessLimit) { System.Console.WriteLine($"You have failed miserably to guess {randomValue} on the range {minValue}/{maxValue} with {maxGuesses} amount of tries."); string response = GetUserInput("Would you like to try again? (y/n)", 1); if (response == "y") { Main(new string[] { "" }); return; } else { System.Console.WriteLine("I guess you like being a failure..."); } } else { System.Console.WriteLine($"Correct! It took you {numberOfGuesses} guesses to guess " + randomValue + " in the range of " + minValue + "-" + maxValue); } } }