Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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!");
        }