Пример #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);
        }
Пример #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));
 }
Пример #3
0
        private void FirstPlayerActions()
        {
            validator = new MinMaxValidator();

            Console.WriteLine("First player, Enter min value");
            validator.minValue = NumberValidator.ConvertStringToNumber(validator);
            Min = (int)validator.minValue;

            Console.WriteLine("Enter max value");
            validator.maxValue = NumberValidator.ConvertStringToNumber(validator);
            Max = (int)validator.maxValue;

            Console.WriteLine("Enter the guessing number");
            GuessingNumber = NumberValidator.ConvertStringToNumber(validator);

            Console.WriteLine("Press any key to continue");
            Console.ReadKey();
        }
Пример #4
0
        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);
        }
Пример #5
0
 public void Setup(int _min, int _max)
 {
     validator = new MinMaxValidator(_min, _max);
 }