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); } }
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()); }
private bool IsCow(ISupposedDigit <TValue> parameter) { return(GetSecretNumber().Digits.Any(digit => digit.Value.Equals(parameter.Value))); }
private bool IsBull(ISupposedDigit <TValue> parameter) { ISecretDigit <TValue> secretDigit = GetSecretDigit(parameter.Index); return(secretDigit.Value.Equals(parameter.Value)); }