protected void GuessingPlayerActions() { Console.Clear(); Console.WriteLine("Guessing player, press any key to start..."); Console.ReadKey(); Console.WriteLine("Try guess a number!"); MaxAttempt = GetMaxAttempt(Min, Max); do { validator = new MinMaxValidator(Min, Max); Console.WriteLine($"Min value is {Min} and max is {Max}"); GuessingPlayerNumber = NumberValidator.ConvertStringToNumber(validator); if (GuessingPlayerNumber > GuessingNumber) { validator.maxValue = validator.IsValid(GuessingPlayerNumber) ? GuessingPlayerNumber : validator.maxValue; Max = (int)validator.maxValue; } if (GuessingPlayerNumber < GuessingNumber) { validator.minValue = validator.IsValid(GuessingPlayerNumber) ? GuessingPlayerNumber : validator.minValue; Min = (int)validator.minValue; } if (GuessingPlayerNumber == GuessingNumber) { IsWin = true; } Console.WriteLine($"It was your {++Attempt}/{MaxAttempt} attempt"); } while (!IsWin && Attempt != MaxAttempt); }
public void IsValidMinMaxValidator() { validator = new MinMaxValidator(5, 7); Assert.IsTrue(validator.IsValid(6)); Assert.IsFalse(validator.IsValid(4)); Assert.IsFalse(validator.IsValid(8)); }
public static int ConvertStringToNumber(MinMaxValidator validator) { var line = Console.ReadLine(); int num; do { if (!string.IsNullOrEmpty(validator?.Error)) { Console.WriteLine(validator.Error); line = Console.ReadLine(); } while (!int.TryParse(line, out num)) { Console.WriteLine("Please, enter an INTEGER NUMBER"); line = Console.ReadLine(); } } while (!validator?.IsValid(num) ?? false); return(num); }