Le Sudoku, version jouable en JavaScript

Le sudoku classique est composé d'une grille de 81 cases, organisées en 9 lignes de 9 colonnes. La grille est aussi subdivisée en 9 régions contenant chacune 9 cases.
La règle du jeu est très simple: A partir d'une grille partiellement remplie, il faut complèter les cases en respectant les trois règles suivantes:
  1. Chaque ligne doit utiliser tous les chiffres de 1 à 9.
  2. Chaque colonne doit utiliser tous les chiffres de 1 à 9.
  3. Chaque région doit utiliser tous les chiffres de 1 à 9.
Cette version est clairement orienté aprentissage du jeu. Vous y trouverez différents niveaux de difficulté. A tout moment vous pouvez demander un indice pour pour aider.

mode d'emploi

Les boutons sont présentés tels qu'ils apparaissent dans le jeu, en version française ou anglaise.


Ce bouton donne accès à une version réduite du mode d'emploi.


Pour être sûr d'avoir une solution, il est indispensable de partir d'une grille préétablie. Ce bouton génère automatiquement une grille avec le niveau désiré (moyen par défaut). Le texte du popup est:

Vous pouvez donc coller directement dans "Démarrer" une grille au format sérialisé. Les cases sont en série dans l'ordre naturel de lecture, sans espace entre cases. Deux formats sérialisés sont acceptés. Attention! Dans le cas ou vous collez une grille pour des régions non carrés, les dimensions doivent être correctement renseignées. Vous ne pouvez pas importer une grille originellement en 2X3 sur une grille d'arrivée en 3X2!


Ce bouton n'es disponible que si la grille initiale était vide. Une fois que vous avez saisi la grille initiale issue d'un magazine au d'un autre logiciel, ce bouton sauvegarde l'état de la grille de démarrage. Si en cours de jeu vous constatez une erreur, il est pratiquement impossible de corriger sans recommencer au début.


Pour jouer avec une grille trouvée dans un magazine, utiliser "Effacer" pour vider la grille courante, placer ensuite les chiffres de départ.
N'oubliez pas de sauvegarder par "Stocker"!


Ce bouton met la grille courante au format sérialisé dans la zone de droite. Sous Windows, il suffit ensuite de selectionner toute la zone avec "CTRL A" puis de copier avec "CTRL C".
Le format sérialisé étant une représentation de la grille sous forme de texte, cela permet de l'envoyer par mail, ou de jouer à plusieurs en même temps sur la même grille. Il suffit pour cela de coller la grille sérialisée dans la zone de saisie de "Démarrer".


Ce bouton permet de faire une sauvegarde dans un cookie de la grille en cours de jeu. Le compteur de temps dans la barre de status est aussi sauvegardé.


Ce bouton recharge la grille sauvé par "Sauver", ainsi que le compteur de temps associé.


Vous êtes débutant et coincé : Ce bouton vous propose un indice sur la méthode de résolution à utiliser et aussi là ou il faut l'appliquer. Si avec ça vous n'y arrivez pas...


Bon là vous êtes vraiment coincé, même avec "Indice". "Trouver" fait le travail correspondant au précédent "Indice". Les cases placées de cette façon sont signalées par une couleur de police différente. Dans le cas d'une grille de niveau moyen, les méthodes de résolution simples devrait être suffisante pour la suite.


"Indice" et "Trouver" ne peuvent plus vous aidez ?
Et bien sûr vous êtes absolument sûr de n'avoir commis aucune erreur. "Résoudre" peut terminer le travail pour vous.
Si une grille a une solution logique, alors "Résoudre" la trouvera directement. La solution trouvée est alors l'unique solution possible.
S'il s'agit d'une grille diabolique, un popup vous prévient. Validez par "Ok" pour terminer la résolution avec la méthode des hypothèses, ou annuler si vous voulez tester vous-même les hypothèses.

Attention! Pour une grille de grande taille, il est fréquent que IE ou même Firefox vous signale qu'un script ralentit le chargement de la page. Dans ce cas il ne faut pas interrompre le script si la méthode des hypothèses est en cours, sinon votre grille sera corrompue.
Si c'est vraiment trop long et que vous voulez interrompre le script, vous devrez recharger la dernière sauvegarde de la grille, ou recommencer au debut si vous n'avez pas pris le soin de faire une sauvegarde intermédiaire!

Les grilles générées par ce logiciel sont à solution unique. Pour le moment "Résoudre" ne vérifie pas l'unicité d'une grille diabolique importée.

"Résoudre" n'a pas beaucoup d'intérêt si ce n'est pour vérifier qu'une grille a bien une solution.

Avec FireFox, "Résoudre" à partir d'une grille vide est assez amusant: On voit la grille se remplir avec les hésitations due à l'utilisation de la méthode des suppositions.

Jouez!

il faut maintenant remplir la grille. SudokuFr.htm
Utilisez les touches fléchées ←↑→↓ pour changer de case.
Si la case "double" est coché, chaque fois que vous complétez une case, elle est sommairement analysée. Les erreurs élémentaires vous sont signalées (doublon dans une ligne, dans une colonne ou dans une région). Le logiciel ne vous donne pas les erreurs de raisonnement ne faisant pas apparaitre un doublon.

Usuellement, chaque case peut être complétée de façon certaine par raisonnement avec les méthodes décrites dans Méthodes de résolution.
Si votre grille initiale est valide ET si vous ne commettez aucune erreur, alors vous devez pouvoir compléter la totalité de la grille.

Pour les grilles "Diaboliques", il y a un moment ou le certain ne marche plus, il faut choisir une option et la tester jusqu'à conpléter la totalité de la grille, ou jusqu'à une impasse. C'est là que le bouton "Sauver" est vraiment utile. Il faut sauvegarder ce qui a été obtenu par raisonnement, avant de choisir une option. Si l'option n'était pas la bonne, "reprendre" permet de reculer avant le choix de la mauvaise option, pour en tenter une autre.', Il est plus facile de résoudre les grilles diaboliques sur papier qu'à l'écran.

Autres

L'écran doit être au minimum en 640*480 pixels et 16 couleurs.
Le navigateur doit supporter le HTML4, Javascript et le DHTML. (testé avec Firefox et internet explorer 5)
Le fichier est auto-porteur (aucun fichier joint, aucune image). Vous pouvez donc le sauvegarder localement (moins de 50Ko). Comme mon hébergeur a la fâcheuse habitude de rajouter des scripts et des fichiers joints, le mieux est de prendre le zip sur la page d'accueil.

Pour votre confort, l'application utilise les cookies pour faire les sauvegardes.
Si cela vous inquiète, vous pouvez à tout moment vérifier ce qui est enregistré par les cookies de la page courante en tapant dans la barre d'adresse: "javascript:alert(document.cookie.split(';').join('\n'))".
L'accès aux cookies étant très restrictif, les sauvegardes ne seront plus accessibles si vous déplacer le fichier HTML dans un autre répertoire. De même sous W2000 ou XP, un utilisateur loggé sous un autre nom n'aura pas accès à vos sauvegardes.
La durée de vie des cookies est ici volontairement limitée à 2 mois. Donc si vous ne jouez pas pendant 2 mois, votre système d'exploitation fera le nettoyage.
Aucun cookie de ce logiciel n'est renvoyé sur Internet.

La chronométrie dans la barre de status permet de comparer les performances de plusieurs joueurs. Passez-vous les grilles avec "Exporter"!

L'impression est optimisée pour pouvoir travailler les grilles diaboliques, avec de grandes cases pour écrire les candidats!

Ce logiciel est orienté apprentissage du jeu. Un joueur expérimenté, amateur de grille difficile trouvera certainement que les grilles générées ici sont un peu répétitives. Dans ce cas je suggère d'utiliser le sudoku version Java disponible sur freesudoku.sourceforge.net . Attention, c'est une application Java et pas une applet! il faut donc Java Runtime Environment (1.4 ou +)

faiblesses, évolutions envisagées:

Complexité

La recherche de la première solution à partir d'une grille vide permet de se faire une idée sur l'évolution de la complexité en fonction de la taille: Donc, si vous voulez faire une grille 25*25, vous pouvez, mais IE comme Firefox vous proposera d'interrompre le script avant la fin!