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