Beispiel #1
0
        internal static bool IsPuzzleSolved(SudokuPuzzle sudokuPuzzle)
        {
            for (int i = 0; i < NumberOfRowsOrColumnsInPuzzle; i++)
            {
                var row        = sudokuPuzzle.Rows[i];
                var isValidRow = AreRowOrColumnCellsValid(row.Cells);

                var column        = sudokuPuzzle.Columns[i];
                var isValidColumn = AreRowOrColumnCellsValid(column.Cells);

                if (!isValidRow || !isValidColumn)
                {
                    return(false);
                }
            }
            return(true);
        }
        internal static string PuzzleToString(SudokuPuzzle sudokuPuzzle)
        {
            var sb          = new StringBuilder();
            var rowCount    = sudokuPuzzle.Cells.GetLength(0);
            var columnCount = sudokuPuzzle.Cells.GetLength(1);

            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < columnCount; j++)
                {
                    var prefix = (j == 0 ? "" : " ");
                    sb.Append($"{prefix}{sudokuPuzzle.Cells[i, j].Value}");
                }
                sb.Append(Environment.NewLine);
            }

            return(sb.ToString());
        }