예제 #1
0
        public void PlayGame()
        {
            Console.WriteLine(WELCOME_MESSAGE);
            var playerName = GetPlayerName();
            var gameMode   = GetGameMode();

            _warGameController.Initialize(new List <string>()
            {
                playerName, COMPUTER_PLAYER_NAME
            });

            while (!_warGameController.IsGameOver())
            {
                Console.WriteLine(_warGameController.GetGameStandings());
                WaitForSpaceBarIfNeeded(gameMode);
                Console.WriteLine();
                var roundResult = _warGameController.StartNewRound();
                Console.WriteLine(roundResult);
                while (roundResult.IsWarRequired)
                {
                    WaitForSpaceBarIfNeeded(gameMode);
                    Console.WriteLine();
                    roundResult = _warGameController.ContinueRoundWithWar();
                    Console.WriteLine(roundResult);
                }
            }

            Console.WriteLine();
            Console.WriteLine(string.Format(WINNER_MESSAGE_FORMAT, _warGameController.GetGameWinnerName()));
            Console.WriteLine();
            Console.WriteLine(PRESS_Q_TO_QUIT);
            WaitForKeyPress(ConsoleKey.Q);
        }
예제 #2
0
        public void StartNewRound_NotEnoughCardsToPlay_ShouldReturnResultWithoutAddingToPot()
        {
            var players        = InitializeTwoPlayerGame();
            var expectedResult = new SingleCardPlayResult(null, null, false, "Test");

            _mockGameRoundService.Setup(mgrs => mgrs.GetResultIfNotEnoughCardsToContinue(It.IsAny <CurrentRound>())).Returns(expectedResult);
            _mockGameRoundService.Setup(mgrs => mgrs.AddCardFromAllPlayersToPot(It.IsAny <CurrentRound>()));

            var result = _warGameController.StartNewRound();

            Assert.AreEqual(expectedResult, result);
            _mockGameRoundService.Verify(mgrs => mgrs.AddCardFromAllPlayersToPot(It.IsAny <CurrentRound>()), Times.Never);
        }