Esempio n. 1
0
 /// <summary>
 /// Verilen tahtayı DFS ile çözer ve sonuç olarak tüm hücrelerinin değeri dolu ve geçerli bir tahat nesnesi döndürür
 /// </summary>
 /// <param name="board">Sudoku problemi tahtası</param>
 /// <returns>Çözüm tahtası</returns>
 public Board Solve(Board board)
 {
     stack.Push(board);
     while (stack.Count > 0)
     {
         Board current = stack.Pop();
         current.FillPossibleValues();
         if (current.IsSolved())
         {
             // found solution
             return(current);
         }
         List <Board> possibleBoards = current.GetBoardsWithFirstPossibleValues();
         possibleBoards.ForEach(b => stack.Push(b));
     }
     return(null);
 }