Ejemplo n.º 1
0
        public CompleteResult IsComplete()
        {
            for (var rowIndex = 0; rowIndex < 3; rowIndex++)
            {
                if (AreEqual(0, rowIndex, 1, rowIndex, 2, rowIndex))
                {
                    return(CompleteResult.Row(rowIndex));
                }
            }

            for (var columnIndex = 0; columnIndex < 3; columnIndex++)
            {
                if (AreEqual(columnIndex, 0, columnIndex, 1, columnIndex, 2))
                {
                    return(CompleteResult.Column(columnIndex));
                }
            }

            if (AreEqual(0, 0, 1, 1, 2, 2))
            {
                return(CompleteResult.Diagonal(0));
            }

            if (AreEqual(0, 2, 1, 1, 2, 0))
            {
                return(CompleteResult.Diagonal(1));
            }

            for (var rowIndex = 0; rowIndex < 3; rowIndex++)
            {
                for (var columnIndex = 0; columnIndex < 3; columnIndex++)
                {
                    if (!_values[columnIndex, rowIndex].IsSet)
                    {
                        return(CompleteResult.NotComplete);
                    }
                }
            }

            return(CompleteResult.Draw);
        }