/// <summary> /// 해결하기 위한 유효한 스도쿠 보드를 생성합니다. /// </summary> /// <param name="sudokuDifficulty">생성된 스도쿠의 난이도</param> public SudokuRow[] GenerateSudoku(SudokuDifficultyType sudokuDifficulty) { sudokuTransformer.ShuffleSudoku(generatedSudokuBoard); for (int i = 0; i < 9; i++) { generatedSudokuBoard[i].CopyTo(sudokuBoardForPlayer[i], 0); } sudokuTransformer.EraseCells(sudokuBoardForPlayer, sudokuDifficulty); return(SudokuUtils.GenerateSudokuGridFromBoard(sudokuBoardForPlayer)); }
private SudokuRow[] SolveSudoku(SudokuRow[] sudokuGrid) { var sudokuBoard = SudokuUtils.GenerateSudokuBoardFromGrid(sudokuGrid); bool isSolvable = this.sudokuSolver.SolveSudoku(sudokuBoard); if (isSolvable) { var solvedSudokuGrid = SudokuUtils.GenerateSudokuGridFromBoard(sudokuBoard); return(solvedSudokuGrid); } else { return(null); } }