public void Should_Increase_Count_Of_Guesses()
        {
            // Arrange
            var guessCounter = new GuessCounter();

            // Act
            guessCounter.IncrementCount();
            var countMessage   = guessCounter.GetRemainingGuessMessage();
            var expectedOutput = Constant.GuessCountPrompt + 1 + Constant.NewLine + Constant.RemainingGuessesPrompt +
                                 (Constant.GuessLimit - 1) + Constant.NewLine;

            // Assert
            Assert.Equal(expectedOutput, countMessage);
        }
Beispiel #2
0
        static void Main()
        {
            var validations = new List <IValidation>()
            {
                new WordCountValidation(),
                new ColourValidation()
            };

            var inputValidator = new InputValidator(validations);
            var consoleService = new ConsoleIoService();

            var inputProcessor = new InputProcessor(consoleService, inputValidator);

            var computerPlayer = new ComputerPlayer();
            var game           = new Game(computerPlayer);

            var messageFormatter = new MessageFormatter();
            var guessCounter     = new GuessCounter();

            var gameEngine = new GameEngine(inputProcessor, consoleService, messageFormatter, guessCounter);

            gameEngine.Mastermind(game); // method should be a verb!
        }
Beispiel #3
0
        public void Mastermind(IGame game)
        {
            _consoleDisplayService.DisplayOutput(Constant.WelcomeInstructions);
            var hints        = Enumerable.Empty <HintColour>();
            var guessCounter = new GuessCounter();

            game.SetComputerPlayersCode();

            while (IsNotWinningCombination(hints))
            {
                _consoleDisplayService.DisplayOutput(guessCounter.GetRemainingGuessMessage());

                if (guessCounter.IsGuessLimitExceeded())
                {
                    _consoleDisplayService.ExitApplication();
                }

                hints = game.Check(_inputProcessor.GetUsersColourGuess());

                guessCounter.IncrementCount();

                _consoleDisplayService.DisplayOutput(_messageFormatter.GetHintMessage(hints));
            }
        }