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); }
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! }
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)); } }