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()); }