private static boolean checkRegion(int region, int num, Puzzle puzzle) {
        int numFound = 0;

        int rowStart = region/3 * 3;
        int colStart = region % 3 * 3;

        for (int row = rowStart ; row < rowStart + 3; row ++) {
            for (int col = colStart; col < colStart + 3; col++) {
                if (puzzle.getSolved()[row][col] == num)
                    return false;

                if (puzzle.getAvailable().get(row).get(col).contains(num))
                    numFound++;
            }
        }

        if (numFound == 1) {
            for (int row = rowStart ; row < rowStart + 3; row ++) {
                for (int col = colStart; col < colStart + 3; col++) {
                    if (puzzle.getAvailable().get(row).get(col).contains(num)) {
                        puzzle.confirm(row, col, num);
                        return true;
                    }
                }
            }
        }

        return false;
    }