/// <summary> /// Represents the Cows And Bulls game UI /// </summary> public static void Main() { SecretNumber bullsAndCowsNumber = new SecretNumber(); Scoreboard scoreBoard = new Scoreboard(SCORES_FILE); Console.WriteLine(WELCOME_MESSAGE); string command = string.Empty; while (true) { Console.Write(INPUT_MESSAGE); command = Console.ReadLine(); if (command == EXIT_COMMAND) //this stays here, not in the swich, because break the while loop { Console.WriteLine(GOOD_BYE_MESSAGE); break; } switch (command) { case TOP_COMMAND: Console.Write(scoreBoard); break; case RESTART_COMMAND: Console.WriteLine(); Console.WriteLine(WELCOME_MESSAGE); bullsAndCowsNumber = new SecretNumber(); break; case HELP_COMMAND: Console.WriteLine("The number looks like {0}.", bullsAndCowsNumber.GetCheat()); break; default: try { Result guessResult = bullsAndCowsNumber.CheckUserGuess(command); if (guessResult.Bulls == 4) { string attempt = bullsAndCowsNumber.GuessesCount == 1 ? "attempt" : "attempts"; string cheat = bullsAndCowsNumber.CheatsCount == 1 ? "cheat" : "cheats"; if (bullsAndCowsNumber.CheatsCount == 0) { Console.Write(NUMBER_GUESSED_WITHOUT_CHEATS, bullsAndCowsNumber.GuessesCount, attempt); string name = Console.ReadLine(); scoreBoard.AddScore(name, bullsAndCowsNumber.GuessesCount); } else { Console.WriteLine(NUMBER_GUESSED_WITH_CHEATS, bullsAndCowsNumber.GuessesCount, attempt, bullsAndCowsNumber.CheatsCount, cheat); } Console.Write(scoreBoard); Console.WriteLine(); Console.WriteLine(WELCOME_MESSAGE); bullsAndCowsNumber = new SecretNumber(); } else { Console.WriteLine("{0} {1}", WRONG_NUMBER_MESSAGE, guessResult); } } catch (Exception ex) { //Modified by KrisNickson => this way it will catch all //expcetions the new validation in CheckUserGuess throws if (ex is ArgumentException || ex is FormatException) { Console.WriteLine(INVALID_COMMAND_MESSAGE); } } break; } } scoreBoard.SaveToFile(); }
public void Test_CheckUserGuess_InputValidation_Under0() { SecretNumber secretNum = new SecretNumber(); string invalidGuess = "-122"; secretNum.CheckUserGuess(invalidGuess); }
public void Test_CheckUserGuess_InputValidation_NullString() { SecretNumber secretNum = new SecretNumber(); string invalidGuess = null; secretNum.CheckUserGuess(invalidGuess); }
public void Test_CheckUserGuess_InputValidation_Over9999() { SecretNumber secretNum = new SecretNumber(); string invalidGuess = "99999"; secretNum.CheckUserGuess(invalidGuess); }
public void Test_CheckUserGuess_CorrectGuess() { SecretNumber sNum = new SecretNumber(); string guess = sNum.ToString(); Result guessResult = sNum.CheckUserGuess(guess); Assert.AreEqual(4, guessResult.Bulls, "Wrong bullsCount count"); Assert.AreEqual(0, guessResult.Cows, "Wrong cowsCount count"); }