Ejemplo n.º 1
0
        public void StringCoordinates_ParsedToIntValues()
        {
            const int expectedX = 0, expectedY = 1;

            const string userInput       = "1,2";
            var          successfulParse = ConsoleInputParser.TryParseCoordinates(userInput, out var actualX, out var actualY);

            Assert.True(successfulParse);
            Assert.Equal(expectedX, actualX);
            Assert.Equal(expectedY, actualY);
        }
Ejemplo n.º 2
0
        public void Start()
        {
            ConsolePrinter.PrintWelcome();
            ConsolePrinter.PrintHeresBoard();
            ConsolePrinter.PrintBoard(_board);

            while (!BoardEvaluator.IsFinished(_board))
            {
                ConsolePrinter.PromptPlayerMove(_currentPlayer);
                var input = Console.ReadLine();
                if (ConsoleInputParser.TryParseCoordinates(input, out var x, out var y))
                {
                    if (_board.ContainsCoordinates(x, y))
                    {
                        var cell = _board.GetCell(x, y);
                        if (cell.IsEmpty())
                        {
                            _currentPlayer.Move(_board, x, y);
                            if (BoardEvaluator.HasWinCondition(_board))
                            {
                                ConsolePrinter.PrintWonGame();
                            }
                            else if (BoardEvaluator.IsTie(_board))
                            {
                                ConsolePrinter.PrintTieGame();
                            }
                            else
                            {
                                ConsolePrinter.PrintMoveAccepted();
                            }
                            ConsolePrinter.PrintBoard(_board);
                            _currentPlayer = _currentPlayer == _player1 ? _player2 : _player1;
                        }
                        else
                        {
                            ConsolePrinter.PrintCellFull();
                        }
                    }
                    else
                    {
                        ConsolePrinter.PrintInvalidCoordinates();
                    }
                }
Ejemplo n.º 3
0
        public void TryParse_InvalidStringCoordinates_ReturnsFalse(string userInput)
        {
            var successfulParse = ConsoleInputParser.TryParseCoordinates(userInput, out var actualX, out var actualY);

            Assert.False(successfulParse);
        }