static void Main() { IDriver driver = new Driver.Driver(); driver.Start(); }
/* * static char[] cheatNumber = { 'X', 'X', 'X', 'X' }; static SortedDictionary<string, int> ScoreBoard = new SortedDictionary<string, int>(); static void StartGame() { Console.WriteLine("Welcome to “Bulls and Cows” game.\nPlease try to guess my secret 4-digit number.\n\n"); Console.WriteLine("Use one of the following command: "); Console.WriteLine("\r'top' - view the top scoreboard."); Console.WriteLine("\r'restart' - start a new game."); Console.WriteLine("\r'help' - reveal a number."); Console.WriteLine("\r'exit' - quit the game."); } static bool IsCorrectNumber(string num) { int count = 0; for (int i = 0; i < 4; i++) { if (Char.IsDigit(num[i])) { count++; } } if (count == 4) { return true; } else { return false; } } static void CalculateBullsAndCows(string secretNumber, string guessNumber, ref int bulls, ref int cows) { List<int> bullIndexes = new List<int>(); List<int> cowIndexes = new List<int>(); for (int i = 0; i < secretNumber.Length; i++) { if (guessNumber[i].Equals(secretNumber[i])) { bullIndexes.Add(i); bulls++; } } for (int i = 0; i < guessNumber.Length; i++) { for (int index = 0; index < secretNumber.Length; index++) { if ((i != index) && !bullIndexes.Contains(index) && !cowIndexes.Contains(index) && !bullIndexes.Contains(i)) { if (guessNumber[i].Equals(secretNumber[index])) { cowIndexes.Add(index); cows++; break; } } } } } static char[] RevealNumberAtRandomPosition(string secretnumber, char[] cheatNumber) { while (true) { Random rand = new Random(); int index = rand.Next(0, 4); if (cheatNumber[index] == 'X') { cheatNumber[index] = secretnumber[index]; return cheatNumber; } else { continue; } } } */ static void Main() { IDriver driver = new Driver.Driver(); driver.Start(); /* StartGame(); string secretNumber = RandomNumberGenerator.Instance.Next().ToString(); string userInput = null; int attemptsToGuess = 0; int helpCalled = 0; while (true) { Console.Write("Enter your guess or command: "); userInput = Console.ReadLine(); if (userInput == "help") { char[] revealedDigits = RevealNumberAtRandomPosition(secretNumber, cheatNumber); StringBuilder revealedNumber = new StringBuilder(); for (int i = 0; i < 4; i++) { revealedNumber.Append(revealedDigits[i]); } Console.WriteLine("The number looks like {0}", revealedNumber.ToString()); helpCalled++; continue; } else if (userInput == "restart") { Console.WriteLine(); StartGame(); attemptsToGuess = 0; secretNumber = RandomNumberGenerator.Instance.Next().ToString(); continue; } else if (userInput == "top") { if (ScoreBoard.Count == 0) { Console.WriteLine("Top scoreboard is empty."); } else { //PrintScoreBoard(); } continue; } else if (userInput == "exit") { Console.WriteLine("Good bye!"); break; } else if (userInput.Length != 4 || IsCorrectNumber(userInput) == false) { Console.WriteLine("Incorrect guess or command!"); continue; } attemptsToGuess++; int bulls = 0; int cows = 0; CalculateBullsAndCows(secretNumber, userInput, ref bulls, ref cows); if (userInput == secretNumber) { if (helpCalled > 0) { Console.WriteLine("Congratulations! You guessed the secret number in {0} attempts and {1} cheats.", attemptsToGuess, helpCalled); Console.WriteLine("You are not allowed to enter the top scoreboard."); //PrintScoreBoard(); Console.WriteLine(); StartGame(); attemptsToGuess = 0; helpCalled = 0; secretNumber = RandomNumberGenerator.Instance.Next().ToString(); } else { Console.WriteLine("Congratulations! You guessed the secret number in {0} attempts.", attemptsToGuess); //EnterScoreBoard(attemptsToGuess); attemptsToGuess = 0; Console.WriteLine(); StartGame(); secretNumber = RandomNumberGenerator.Instance.Next().ToString(); } continue; } Console.WriteLine("Wrong number! Bulls: {0}, Cows: {1}", bulls, cows); } */ }