Solveur de Sudoku

Voici le fruit de ma participation au Défi Delphi, je n'ai pas été trés bien classé, mais je me suis bien amusé...

Le programme Delphi 

La version (trés simplifiée ) Java, pour le bel exemple de BackTraking !....

public void chercheValeurCase(int n) {
        if ((n < 81) && (!fini)) {
            int x = n % 9;
            int y = n / 9;
            if (c[n].valeur == 0) {
                for (int v = 1; v <= 9; v++)
                    if (!DansLigne(y, v))
                        if (!DansColonne(x, v))
                            if (!DansCarre(x, y, v)) {
                                c[n].valeur = v;
                                chercheValeurCase(n + 1);
                                c[n].valeur = 0;// backTraking !...=================
                                c[n].repaint();
                            }
            } else
                chercheValeurCase(n + 1);
        } else {
            if (!fini) {
                AfficheSolution();
                fini = true; // pour s'arrêter à la première ...
            }
        }
    }

Un bon générteur