示例#1
0
        public void ReturnCorrectMark(string expectedMark, List <Colour> code, List <Colour> guess)
        {
            var codeBreaker = new CodeChecker();
            var actual      = codeBreaker.CheckGuess(code, guess);

            Assert.AreEqual(expectedMark, actual);
        }
        public void It_Should_Return_WhiteForEveryCorrectColourAtIncorrectPosition_When_Given_ValidGuesses(List <Peg> guess, List <Feedback> expectedFeedback)
        {
            //arrange
            var codeGenerator = new CodeGenerator(new List <Peg> {
                Peg.Red, Peg.Blue, Peg.Green, Peg.Yellow
            });
            var nonRandomizer = new NonRandomizer();
            var code          = new CodeChecker(codeGenerator, nonRandomizer);

            code.GenerateSecretCode();

            //act
            var feedback = code.CheckGuess(guess);

            //assert
            Assert.Equal(expectedFeedback, feedback);
        }
示例#3
0
        private static void PlayGame()
        {
            var          code         = new CodeGenerator();
            var          codeChecker  = new CodeChecker();
            var          colourMapper = new ColourMapper();
            var          randomCode   = code.Create();
            var          guess        = "";
            const string response     = "The mark was: ";

            Console.WriteLine("Welcome to Code Breaker!");
            while (guess != "stop")
            {
                Console.WriteLine("Please insert your guess (e.g \"r,g,y,c\"): ");
                guess = Console.ReadLine();
                if (guess == "stop")
                {
                    return;
                }

                try
                {
                    var convertedGuess = colourMapper.Map(guess);
                    var mark           = codeChecker.CheckGuess(randomCode, convertedGuess);
                    if (mark == "bbbb")
                    {
                        Console.WriteLine("You have won the game!");
                        Console.ReadKey();
                        return;
                    }
                    Console.WriteLine(response + mark + Environment.NewLine);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message + Environment.NewLine);
                }
            }
            Console.ReadKey();
        }
示例#4
0
 public List <Feedback> CheckGuess(List <Peg> guess)
 {
     return(_codeChecker.CheckGuess(guess));
 }