Exemple #1
0
        private void DigitsAssert(ISupposedNumber <int> actual,
                                  Action <ISupposedDigit <int>, ISupposedDigit <int> > condition)
        {
            for (int index = 0; index < _expectedDigits.Count(); index++)
            {
                ISupposedDigit <int> expectedDigit = _expectedDigits.ElementAt(index);
                ISupposedDigit <int> actualDigit   = actual.Digits.ElementAt(index);

                condition(actualDigit, expectedDigit);
            }
        }
Exemple #2
0
        public IEvaluationResult Execute(ISupposedDigit <TValue> parameter)
        {
            if (IsBull(parameter))
            {
                return(new Bull <TValue>(parameter.Index, parameter.Value));
            }

            if (IsCow(parameter))
            {
                return(new Cow <TValue>(parameter.Index, parameter.Value));
            }

            return(new EmptyEvaluationResult());
        }
Exemple #3
0
 private bool IsCow(ISupposedDigit <TValue> parameter)
 {
     return(GetSecretNumber().Digits.Any(digit => digit.Value.Equals(parameter.Value)));
 }
Exemple #4
0
        private bool IsBull(ISupposedDigit <TValue> parameter)
        {
            ISecretDigit <TValue> secretDigit = GetSecretDigit(parameter.Index);

            return(secretDigit.Value.Equals(parameter.Value));
        }