/// <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));
        }
Ejemplo n.º 2
0
        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);
            }
        }