====================================================== | SUDOKU | ====================================================== Pour compiler avec ocaml : ocamlc -o sudoku[.exe] Graphics.cma o_sudoku.ml o_sudoku2.ml o_sudoku3.ml Pour lancer : sudoku[.exe] [-v], si vous mettez -v vous serez en mode verbose. Vous pouvez modifier la variable dir de sudoku.ml et o_sudoku.ml en mettant le nom du répertoire où vous avez installé les fichiers. La variable speed de sudoku3.ml et o_sudoku3.ml détermine le temps pendant lequel les boutons restent allumés. La résolution par défaut est 1024x768 mais il suffit de modifier une fois le paramètre de open_graph sinon. Interface graphique ------------------- Pour rentrer une case dans la grille, il faut pointer cette grille avec la souris et entrer le chiffre. Cliquer n'est pas nécessaire, mais double-cliquer (pas trop vite) rentre le dernier chiffre tapé. Le chiffre 0 efface une case. Au début, vous pouvez saisir une grille ou demander qu'on vous en génère une aléatoirement. Vous pouvez aussi initialiser la randomisation en saisissant un nombre. Vous pouvez aussi charger une grille en saisissant son nom sans l'extension .sud. La résolution indique en vert les cases facilement trouvées, en rouge les cases où il a fallu faire une hypothèse et en orange les cases qui s'en sont déduites. Si la grille n'a pas une solution unique le bouton résoudre s'allumera en orange, si vous rappuyez sur ce bouton, l'ordinateur essaiera de trouver toutes les réponses possibles pour en exhiber fièrement le nombre (du moins le nombre qu'il en a calculé avant que la mémoire explose, si vous vous amusez à le faire tourner sur une grille vide, petits malins), affiché en rouge au dessus des boutons, dans ce cas les cases où il a fallu faire une hypothèse seront affichées en magenta. Si vous interrompez le calcul en cliquant ou en tapant une touche, le nombre sera affiché en magenta. Si la grille n'est pas valide, le bouton s'allumera en rouge. Le bouton vérifier vous permet de vérifier l'unicité de la solution d'une grille. Si c'est le cas, le bouton s'allumera en vert. Il permet aussi de vérifier si vous n'avez pas fait d'erreurs, dans le cas contraire, le bouton s'allumera en rouge. Enfin si la grille est valide mais présente plusieurs solutions, le bouton s'allumera en orange. Le bouton indice tente de vous donner un indice sur une case par ordre croissant de difficulté. Si c'est immédiat, l'indice apparaîtra en vert. Sinon le bouton s'allumera en vert. Si vous rappuyez, il tentera d'éliminer des possibilités par la stratégie des alignements ou des cliques. Les indices qui s'en suivent apparaissent en bleu-vert. S'il n'y arrive pas, le bouton s'allumera en bleu-vert. Si vous rappuyez, il tentera de vous donner un indice un peu plus dur en jaune. Si le prochain indice en découle facilement, il apparaîtra en cyan. S'il n'y plus d'indice jaune, le bouton s'allumera en jaune. Si vous rappuyez il tentera de vous donner un indice de difficulté maximale en rouge. Les indices qui en découlent seront affichés en orange. Si la grille n'est pas valide, le bouton s'allumera en rouge. Enfin, s'il y a plusieurs solutions, ce bouton ne vous le signalera pas et résoudra la première des solutions mais affichera les indices normalement rouges en magenta. Le bouton case/possibilité est un interrupteur qui vous permet d'inscrire dans une case soit une valeur pour la case, soit une des possibilités restantes. Le bouton calcul poss. calcule les possibilités et les affiche. S'il ne trouve aucune différence avec les possibilités que vous avez saisies, le bouton s'allume en bleu, sinon il s'allume en vert et les différences s'affichent aussi en vert. Le bouton sauver permet de mémoriser la grille telle qu'elle est, saisissez le nom du fichier sans l'extension .sud. Si la sauvegarde réussit, le bouton s'allumera en vert. Le bouton reset réinitialise la grille. Le bouton new relance le programme, et le bouton quit permet de sortir.