IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

générer grille de sudoku sans disjoncteur


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut générer grille de sudoku sans disjoncteur
    eh oui, c'est ma lubie du moment

    quelqu'un a-t-il tenté d'écrire en js un algo fiable pour générer des grilles complétées sans avoir besoin d'un break à un moment ou à un autre?

    je bloque question logique (trop peu de neurones) sur un moyen de prévoir qu'une case ne pourra être pourvue d'un chiffre unique quand viendra son tour;

    le principe que j'utilise:

    9 tableaux représentant les lignes
    9 tableaux représentant les colonnes
    9 tableaux représentant les blocs

    à chaque case à pourvoir, je fais un test pour vérifier dans les trois tableaux dont la case fait partie les valeurs encore disponibles et j'affecte une de ces valeurs au hasard à la case;

    hum... ce hasard est bien fragile...

    Comment faire pour que "la meilleure valeur soit choisie"? (celle qui ne provoquera pas une impasse en cours de génération);

    merci

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Tiens, voila l'algorithme à utiliser:
    http://en.wikipedia.org/wiki/Dancing_Links

    Bon, j'avoue que ta méthode semble plus naturelle (on peut même l'appeller backtracking algorithm, ça fait plus sérieux). Mais on ne peut pas tellement l'améliorer: tu fais un choix à chaque fois que tu peux, si tu n'as qu'une solution, tu continues, et si tu n'as plus aucune solution (pour la case courante), tu reviens à ton dernier choix, et tu le changes...

    Ca marche, mais c'est lent. Sinon, tu as l'algorithme ci-dessus. Si tu arrives à decrypter un peu, j'essayerais de le faire faire à mes eleves... (un peu de sadisme de temps en temps).

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    pfff

    les explications en lien ( http://en.wikipedia.org/wiki/Sudoku ) ne sont guère plus transparentes!
    les x et les y, moi je veux bien mais je reste un peu sur ma faim;

    je continue mes recherches sur le web d'un script js opérationnel;

    merci pour le backtracking algorithm

    pour le temps de génération, j'ai l'impression que j'obtiens des choses correctes (==> voir faq) vu que c'est toujours au même endroit que ça coince et que je fais un break quand l'indicateur d'essais monte un peu trop; d'ailleurs, j'ignore aussi au bout de combien d'essais je peux estimer que la case est impossible à pourvoir!
    et puis quand ça passe, c'est carrément direct: les grilles générées n'ont eu à subir presque aucun retour en arrière

    truc de fou, ce jeu pour des pas matheux...

Discussions similaires

  1. Comment résoudre une grille de Sudoku ?
    Par tarik_12 dans le forum Pascal
    Réponses: 1
    Dernier message: 25/04/2007, 20h31
  2. Résoudre grille de Sudoku
    Par Dimitri_87 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 29/08/2006, 11h43
  3. [VB6]Afficher une grille de Sudoku
    Par epaminondas dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/03/2006, 17h36
  4. Dessiner un grille de sudoku
    Par etranger dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 17/02/2006, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo