예제 #1
0
        public static AnswerDigit GenerateRamdomAnswerDigit()
        {
            var digit = new AnswerDigit();

            digit.GenerateRamdomNumber();
            return(digit);
        }
예제 #2
0
        public void AnswerDigitRandomlyGenerated()
        {
            AnswerDigit answerDigit = new AnswerDigit();
            answerDigit.GenerateRamdomNumber();

            Assert.That(answerDigit.Number > 0 && answerDigit.Number < 10, "Random answer number not between acceptable ranges.");
        }
예제 #3
0
 /// <summary>
 /// Process all the user's inputs
 /// </summary>
 /// <param name="userInput"></param>
 public void ProcessAnswer(int[] userInput)
 {
     for (int currentAnswerDigits = 0; currentAnswerDigits < AnswerDigits.Count; currentAnswerDigits++)
     {
         AnswerDigit answerDigit = AnswerDigits[currentAnswerDigits];
         answerDigit.MatchStatus = MatchInputAtCurrentPosition(answerDigit, userInput[currentAnswerDigits]);
     }
 }
예제 #4
0
        private AnswerDigit.Status MatchInputAtCurrentPosition(AnswerDigit answerDigit, int currentInput)
        {
            if (answerDigit.Matches(currentInput))
            {
                return(AnswerDigit.Status.Match);
            }

            if (IsInAnswer(currentInput))
            {
                return(AnswerDigit.Status.WrongPosition);
            }

            return(AnswerDigit.Status.Nonmatch);
        }
예제 #5
0
        public IList <AnswerDigit> GenerateRandomAnswers(int count)
        {
            var digits = new Dictionary <int, AnswerDigit>();

            while (digits.Count < count)
            {
                AnswerDigit digit = AnswerDigit.GenerateRamdomAnswerDigit();

                if (!digits.ContainsKey(digit.Number))
                {
                    digits.Add(digit.Number, digit);
                }
            }

            return(digits.Values.ToList());
        }
예제 #6
0
        private AnswerDigit.Status MatchInputAtCurrentPosition(AnswerDigit answerDigit, int currentInput)
        {
            if (answerDigit.Matches(currentInput))
            {
                return AnswerDigit.Status.Match;
            }

            if (IsInAnswer(currentInput))
            {
                return AnswerDigit.Status.WrongPosition;
            }

            return AnswerDigit.Status.Nonmatch;
        }
예제 #7
0
 public Answer(int numberOfAnswerDigits)
 {
     this.numberOfAnswerDigits = numberOfAnswerDigits;
     AnswerDigits = new AnswerDigit[numberOfAnswerDigits];
 }
예제 #8
0
 public static AnswerDigit GenerateRamdomAnswerDigit()
 {
     var digit = new AnswerDigit();
     digit.GenerateRamdomNumber();
     return digit;
 }
예제 #9
0
 public void AnswerDigitMatches()
 {
     AnswerDigit answerDigit = new AnswerDigit(5);
     Assert.That(answerDigit.Matches(5), "Equality check does not identify matches.");
 }
예제 #10
0
 public void AnswerDigitDoesNotMatch()
 {
     AnswerDigit answerDigit = new AnswerDigit(5);
     Assert.IsFalse(answerDigit.Matches(1), "Equality check does not indentify non-matches.");
 }
예제 #11
0
 private string GetStatusSymbol(AnswerDigit.Status status)
 {
     switch (status)
     {
         case (AnswerDigit.Status.Match):
             { return "✔"; }
         case (AnswerDigit.Status.Nonmatch):
             { return "✗"; }
         default:
             { return "O"; }
     }
 }