public CompleteResult Validate() { for (var columnIndex = 0; columnIndex < 3; columnIndex++) { if (AreEqual(columnIndex, 0, columnIndex, 1, columnIndex, 2)) { return(_lastResult = CompleteResult.Column(columnIndex)); } } for (var rowIndex = 0; rowIndex < 3; rowIndex++) { if (AreEqual(0, rowIndex, 1, rowIndex, 2, rowIndex)) { return(_lastResult = CompleteResult.Row(rowIndex)); } } if (AreEqual(0, 0, 1, 1, 2, 2)) { return(_lastResult = CompleteResult.Diagonal(0)); } if (AreEqual(2, 0, 1, 1, 0, 2)) { return(_lastResult = CompleteResult.Diagonal(1)); } for (var rowIndex = 0; rowIndex < 3; rowIndex++) { for (var columnIndex = 0; columnIndex < 3; columnIndex++) { if (IsEmpty(rowIndex, columnIndex)) { return(_lastResult = CompleteResult.NotFinished); } } } return(_lastResult = CompleteResult.Draw); }
private static void DisplayWinner(CompleteResult result) { switch (result.Type) { case CompletionType.Draw: Display.DisplayOverMessage("It's a draw!", '\0', ConsoleColor.Black, string.Empty); return; case CompletionType.Row: HighlightRow(result.Sequence); break; case CompletionType.Column: HighlightColumn(result.Sequence); break; case CompletionType.Diagonal: HighlightDiagonal(result.Sequence); break; } Display.DisplayOverMessage("Player ", _currentPlayer.Letter, _currentPlayer.Color, " won!"); }