public void solveSudoku(char[][] board) {
        LinkedList<Box> s = new LinkedList<Box>();
        s.add(nextEmptyBox(board, 0, 0));
        while (!s.isEmpty()) {
            Box current = s.peek();
            if(current == done)
                return;
            int currentValue = board[current.row][current.column];
            if (currentValue == '9') {
                board[current.row][current.column] = '.';
                s.pop();
            } else if (currentValue == '.') {
                board[current.row][current.column] = '1';
                if (isValidBox(board, current.row, current.column))
                    s.push(nextEmptyBox(board, current.row, current.column));
            } else {
                board[current.row][current.column]++;
                if (isValidBox(board, current.row, current.column))
                    s.push(nextEmptyBox(board, current.row, current.column));
            }
        }
    }