Ce fichier jar (Java ARchive) contient plusieurs programmes :
- sudoku.Play : applet pour proposer des problèmes sans fournir de solution commentée,
- sudoku.Replay : applet pour proposer des SUDOKU et les solutions commentées associées. Mais le visiteur peut aussi essayer de résoudre les SUDOKU avant de regarder la solution proposée.
- sudoku.GameRecorder : programme un tantinet expérimental pour enregistrer une partie commentée (à utiliser éventuellement pour préparer l’utilisation de sudoku.Replay).
sudoku.Play
Cet applet s’insère dans une page HTML de la manière suivante :
<applet archive="sudoku.jar" code="sudoku.Play" width="400" height="400">
<param name="lang" value="fr"/>
<param name="position0" value="A1=3 C4=2 ..."/>
<param name="position1" value="A1=3 C4=2 ..."/>
<param name="position2" value="C2=4 B5=9 ..."/>
...
</applet>
Les positions sont définies directement dans les paramètres de nom "position" suivi d’un numéro. Les numéros commencent à zéro.
A noter que le programme est bilingue : il est possible de demander des menus en anglais en changeant la langue (mettre "en" à la place de "fr").
sudoku.Replay
Cet applet s’insère dans une page HTML de la manière suivante :
<applet archive="sudoku.jar" code="sudoku.Replay" width="820" height="570">
<param name="lang" value="fr"/>
<param name="game0" value="parties_commentees/niveau3"/>
<param name="game1" value="parties_commentees/niveau4-1"/>
<param name="game2" value="parties_commentees/niveau4-2"/>
</applet>
Chaque partie commentée doit être mémorisée sur un fichier "texte" dont le nom est mentionné dans un paramètre, de nom "game" suivi d’un numéro, et de valeur le nom du fichier sans suffixe. Attention :
- le suffixe d’un fichier doit impérativement correspondre à la valeur du paramètre lang.
- il est possible de stocker les fichiers dans un ou plusieurs sous-répertoires mais il faut toujours donner un chemin relatif par rapport au répertoire du fichier HTML. Il est par ailleurs interdit de remonter dans l’arborescence (utilisation de ../ dans le chemin).
- la numérotation des paramètres game commence à 0.
Dans l’exemple proposé, toutes les parties commentées sont stockées dans le répertoire parties_commentees et les fichiers ont pour noms niveau3.fr niveau4-1.fr et niveau4-2.fr
L’intérêt du paramètre "lang" est évidemment de pouvoir proposer la même partie commentée dans plusieurs langues différentes. Il sert aussi à l’applet pour sélectionner la langue des menus.
L’applet sudoku.Replay est doté d’une zone de texte affichant la liste des coups joués et les commentaires associés. Cette zone possède un ascenseur et est sensitive : un clic sur un numéro de coup met à jour immédiatement le diagramme en affichant ce coup comme le dernier joué.
sudoku.GameRecorder
Il s’agit là d’un vrai programme et non d’un applet. Il se lance dans un fenêtre de commande :
java -jar sudoku.jar sudoku.GameRecorder
Le programme admet deux paramètres optionnels principaux :
- la langue à employer pour les menus : fr ou en
- la largeur en pixels de la zone centrale d’une case. La valeur 40 par défaut donne un diagramme assez grand. Une valeur inférieure à 10 donne un diagramme difficile à exploiter : les marques de choix sont alors vraiment petites.
Attention : ce programme a quelques bugs. En particulier, n’essayez pas de revenir sur un coup avec le bouton "<". Cela ne marche pas bien. Si vous avez fait un mauvais coup, utilisez le menu contextuel (deuxième bouton de la souris) pour corriger ou employez les racourcis du clavier comme la touche d vidant la case située sous le pointeur de la souris.