Les meilleurs développeurs Full Stack freelances sont sur Codeur.com
Fermé · 30 à 300 € · 3 offres · 318 vues
Ecrire un programme sudoku qui permet de réaliser une aide à la résolution de grilles de Sudoku (cf. la page correspondante sur Wikipedia pour plus d'infos sur les règles du jeu). L'utilisateur commence par fournir le nom d'un fichier texte contenant la description d'une grille de Sodoku. Dans ce fichier se trouve une série de 9 lignes formées de 9 caractères entre '0' et '9' correspondant à la disposition initiale de la grille (le caractère '0' correspond aux cases vides de la grille). Par exemple, voici le contenu du fichier grid1.txt utilisé plus bas, dans l'exemple d'exécution :
0 8 9 2 0 3 0 0 6
2 0 3 9 1 4 7 0 0
0 0 0 6 0 7 0 0 0
0 2 0 5 0 9 0 7 0
8 3 6 0 0 2 0 0 0
0 0 0 3 0 0 0 2 0
0 0 0 7 0 0 0 4 0
0 5 7 0 0 0 8 0 0
4 0 0 0 0 6 0 9 0
Après chargement et affichage initial de la grille (cf. exemple d'exécution ci-dessous), se met en place une boucle d'interaction dans laquelle l'utilisateur va entrer des commandes pour compléter la grille petit à petit, au fil de sa réflexion. Voici quelques exemples de commandes utilisables :
A1 = 5 : Placer de manière certaine le chiffre 5 dans la case A1 (le programme affichera la séquence "-5-" dans la case A1)
A1 ? 5 : Placer de manière hypothétique le chiffre 5 dans la case A1 (le programme affichera la séquence "?5?" dans la case A1)
A1 ? : Afficher la liste de tous les chiffres pouvant être mis dans la case A1 sans générer de conflit avec les valeurs existantes
5 ? : Afficher la liste de toutes les cases dans lesquelles on peut placer la valeur 5 sans générer de conflit avec les valeurs existantes
Pour les plus courageux, on peut imaginer l'extension suivante: si l'utilisateur entre une chaîne de caractères vide au lieu d'un nom de fichier, le programme doit générer une grille aléatoire. Mais attention, cette grille devra être une grille de Sudoku valide (i.e. la résolution du problème doit converger et aboutir à une solution unique). A vous de trouver un algorithme pour générer de telles grilles valides, ce qui est loin d'être trivial.
Exemple d'exécution :
================================================================================
SUDOKU : play the Sudoku game
================================================================================
<> Enter filename : grid1.txt
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 | | 8 | 9 | 2 | | 3 | | | 6 |
+---+---+---+---+---+---+---+---+---+
2 | 2 | | 3 | 9 | 1 | 4 | 7 | | |
+---+---+---+---+---+---+---+---+---+
3 | | | | 6 | | 7 | | | |
+---+---+---+---+---+---+---+---+---+
4 | | 2 | | 5 | | 9 | | 7 | |
+---+---+---+---+---+---+---+---+---+
5 | 8 | 3 | 6 | | | 2 | | | |
+---+---+---+---+---+---+---+---+---+
6 | | | | 3 | | | | 2 | |
+---+---+---+---+---+---+---+---+---+
7 | | | | 7 | | | | 4 | |
+---+---+---+---+---+---+---+---+---+
8 | | 5 | 7 | | | | 8 | | |
+---+---+---+---+---+---+---+---+---+
9 | 4 | | | | | 6 | | 9 | |
+---+---+---+---+---+---+---+---+---+
Note : enter an empty line to stop the interaction loop
<> Enter command : A1?
A1=[1,5,7]
<> Enter command : A1?5
A B C D E F G H I
+---+---+---+---+---+---+---+---+---+
1 |?5?| 8 | 9 | 2 | | 3 | | | 6 |
+---+---+---+---+---+---+---+---+---+
2 | 2 | | 3 | 9 | 1 | 4 | 7 | | |
+---+---+---+---+---+---+---+---+---+
3 | | | | 6 | | 7 | | | |
+---+---+---+---+---+---+---+---+---+
4 | | 2 | | 5 | | 9 | | 7 | |
+---+---+---+---+---+---+---+---+---+
5 | 8 | 3 | 6 | | | 2 | | | |
+---+---+---+---+---+---+---+---+---+
6 | | | | 3 | | | | 2 | |
+---+---+---+---+---+---+---+---+---+
7 | | | | 7 | | | | 4 | |
+---+---+---+---+---+---+---+---+---+
8 | | 5 | 7 | | | | 8 | | |
+---+---+---+---+---+---+---+---+---+
9 | 4 | | | | | 6 | | 9 | |
+---+---+---+---+---+---+---+---+---+
<> Enter command :
NB : pour les petits malins et leurs tarifs hallucinants s'abstenir , petit projet pour jeune étudiante qui galère en informatique , soyez courtois SVP;)
Budget indicatif : 30 à 300 €
Publication : 29 avril 2009 à 02h40
Profils recherchés : Développeur freelance , Expert Matlab freelance
3 freelances ont répondu à ce projet
2 propositions de devis en moins de 2h