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); }
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(); } }
public void TryParse_InvalidStringCoordinates_ReturnsFalse(string userInput) { var successfulParse = ConsoleInputParser.TryParseCoordinates(userInput, out var actualX, out var actualY); Assert.False(successfulParse); }