Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
        }