private rezultat TryToGuess(int firstDigit, int secondDigit, int thirdDigit, int fourthDigit) { if (firstDigit < 0 || firstDigit > 9) { throw new ArgumentException("Invalid first digit"); } if (secondDigit < 0 || secondDigit > 9) { throw new ArgumentException("Invalid second digit"); } if (thirdDigit < 0 || thirdDigit > 9) { throw new ArgumentException("Invalid third digit"); } if (fourthDigit < 0 || fourthDigit > 9) { throw new ArgumentException("Invalid fourth digit"); } this.GuessesCount++; int bulls = 0; bool isFirstDigitBullOrCow = false; // checks if firstDigit is a bull: if (this.FirstDigit == firstDigit) { isFirstDigitBullOrCow = true; bulls++; } bool isSecondDigitBullOrCow = false; // checks if secondDigit is a bull: if (this.SecondDigit == secondDigit) { isSecondDigitBullOrCow = true; bulls++; } bool isThirdDigitBullOrCow = false; // checks if thirdDigit is a bull: if (this.ThirdDigit == thirdDigit) { isThirdDigitBullOrCow = true; bulls++; } bool isFourthDigitBullOrCow = false; // checks if fourthDigit is a bull: if (this.FourthDigit == fourthDigit) { isFourthDigitBullOrCow = true; bulls++; } int cows = 0; // checks if firstDigit is cow: if (!isSecondDigitBullOrCow && firstDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && firstDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && firstDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if secondDigit is cow: if (!isFirstDigitBullOrCow && secondDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && secondDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && secondDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if thirdDigit is cow: if (!isFirstDigitBullOrCow && thirdDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isSecondDigitBullOrCow && thirdDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && thirdDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if fourthDigit is cow: if (!isFirstDigitBullOrCow && fourthDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isSecondDigitBullOrCow && fourthDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && fourthDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } rezultat guessResult = new rezultat(); guessResult.Bulls = bulls; guessResult.Cows = cows; return(guessResult); }
static void Main(string[] args) { BullsAndCowsNumber bullsAndCowsNumber = new BullsAndCowsNumber(); Scoreboard scoreBoard = new Scoreboard(ScoresFile); Console.WriteLine(WelcomeMessage); while (true) { Console.Write("Enter your guess or command: "); string command = Console.ReadLine(); if (command == "exit") { Console.WriteLine(GoodBuyMessage); break; } switch (command) { case "top": { Console.Write(scoreBoard); break; } case "restart": { Console.WriteLine(); Console.WriteLine(WelcomeMessage); bullsAndCowsNumber = new BullsAndCowsNumber(); break; } case "help": { Console.WriteLine("The number looks like {0}.", bullsAndCowsNumber.GetCheat()); break; } default: { try { rezultat guessResult = bullsAndCowsNumber.TryToGuess(command); if (guessResult.Bulls == 4) { if (bullsAndCowsNumber.cheats == 0) { Console.Write(NumberGuessedWithoutCheats, bullsAndCowsNumber.GuessesCount, bullsAndCowsNumber.GuessesCount == 1 ? "attempt" : "attempts"); string name = Console.ReadLine(); scoreBoard.AddScore(name, bullsAndCowsNumber.GuessesCount); } else { Console.WriteLine(NumberGuessedWithCheats, bullsAndCowsNumber.GuessesCount, bullsAndCowsNumber.GuessesCount == 1 ? "attempt" : "attempts", bullsAndCowsNumber.cheats, bullsAndCowsNumber.cheats == 1? "cheat" : "cheats"); } Console.Write(scoreBoard); Console.WriteLine(); Console.WriteLine(WelcomeMessage); bullsAndCowsNumber = new BullsAndCowsNumber(); } else { Console.WriteLine("{0} {1}", WrongNumberMessage, guessResult); } } catch (ArgumentException) { Console.WriteLine(InvalidCommandMessage); } break; } } } scoreBoard.SaveToFile(ScoresFile); }
private rezultat TryToGuess(int firstDigit, int secondDigit, int thirdDigit, int fourthDigit) { if (firstDigit < 0 || firstDigit > 9) { throw new ArgumentException("Invalid first digit"); } if (secondDigit < 0 || secondDigit > 9) { throw new ArgumentException("Invalid second digit"); } if (thirdDigit < 0 || thirdDigit > 9) { throw new ArgumentException("Invalid third digit"); } if (fourthDigit < 0 || fourthDigit > 9) { throw new ArgumentException("Invalid fourth digit"); } this.GuessesCount++; int bulls = 0; bool isFirstDigitBullOrCow = false; // checks if firstDigit is a bull: if (this.FirstDigit == firstDigit) { isFirstDigitBullOrCow = true; bulls++; } bool isSecondDigitBullOrCow = false; // checks if secondDigit is a bull: if (this.SecondDigit == secondDigit) { isSecondDigitBullOrCow = true; bulls++; } bool isThirdDigitBullOrCow = false; // checks if thirdDigit is a bull: if (this.ThirdDigit == thirdDigit) { isThirdDigitBullOrCow = true; bulls++; } bool isFourthDigitBullOrCow = false; // checks if fourthDigit is a bull: if (this.FourthDigit == fourthDigit) { isFourthDigitBullOrCow = true; bulls++; } int cows = 0; // checks if firstDigit is cow: if (!isSecondDigitBullOrCow && firstDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && firstDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && firstDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if secondDigit is cow: if (!isFirstDigitBullOrCow && secondDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && secondDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && secondDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if thirdDigit is cow: if (!isFirstDigitBullOrCow && thirdDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isSecondDigitBullOrCow && thirdDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isFourthDigitBullOrCow && thirdDigit == FourthDigit) { isFourthDigitBullOrCow = true; cows++; } // checks if fourthDigit is cow: if (!isFirstDigitBullOrCow && fourthDigit == FirstDigit) { isFirstDigitBullOrCow = true; cows++; } else if (!isSecondDigitBullOrCow && fourthDigit == SecondDigit) { isSecondDigitBullOrCow = true; cows++; } else if (!isThirdDigitBullOrCow && fourthDigit == ThirdDigit) { isThirdDigitBullOrCow = true; cows++; } rezultat guessResult = new rezultat(); guessResult.Bulls = bulls; guessResult.Cows = cows; return guessResult; }