Programme de Sudoku en Java
Transcription
Programme de Sudoku en Java
Durocher Nicolas Noblet Loïg FA09 Programme de Sudoku en Java 1) Préambule Avant de lancer le programme il faut placer un fichier appelé sudoku.txt contenant les chiffres pour l'initialisation telle que dans l'énoncé(cf derniere page de ce compte rendu pour le contenu). Nous avons également expliqué le lancement en mode console dans le fichier TestConsole. Le fichier TestGraphique permet de lancer également uniquement le mode graphique. Certains objets utilisés demandent la version 1.5 de Java. 2) Choix du langage Pour réaliser ce programme Sudoku, nous avions le choix pour le langage de programmation. 2 choix s'offraient à nous, soit une programmation en C, en utilisant des tableaux, ou une programmation orientée objet, en utilisant des langages tel que C++ ou bien Java. Le premier choix offre un programme très rapide à l'usage, mais en terme de programmation l'intérêt est plus limité. Par contre, Java nous permet d'avoir une programmation de plus haut niveau, en utilisant les objets. Nous avons porté notre choix sur une programmation totalement orientée objet. Ce qui fait que nous n'utilisons aucun tableau. 3) Réalisation La spécifité du sudoku est qu'une case est associée à une ligne, une colonne et un carré. Lignes, colonnes et carrés ont des propriétés communes. Ils contiennent tous les 3 un ensemble de valeur, allant de 1 à 9. Et ils ont également des méthodes communes d'ajout, de suppression et de vérification. Le sudoku est une grille, divisée en 9 sous carrés, mais également en 9 lignes, ou 9 colonnes. D'après ce que nous avons déduit du Sudoku, nous avons utilisé les objets suivants : Case : La case est l'élément de base du Sudoku. Les attributs de cet objet sont, la position en x, la position en y, une valeur, ainsi que l'appartenance a un sous-carré. Les attributs x et y permettent de retrouver la ligne et la colonne associés. – Ensemble : L'ensemble est une classe abstraite. Elle permet d'initialiser la liste des valeurs possibles pour un ensemble, ainsi que de déclarer les méthodes d'ajout, de suppression et de vérification. – Informatique – Conception d'un programme de Sudoku page 1/3 Durocher Nicolas Noblet Loïg FA09 Ligne, Colonne et Carre : Ces 3 classes implémentent les méthodes et données héritées d'Ensemble. Elles permettent de donner un certain nombre de fonction concues pour gérer les cases et les valeurs possibles restantes (cf commentaire dans le code), comme notament la vérification du remplissage de ces éléments. A chaque ajout la valeur sera controlée pour respecter la règle, et sera retirée d'une liste qui contient à l'initialisation toutes les valeurs, pour éviter l'insertion de doublons. Lorsque la liste est vide, alors l'élément est plein. – Sudoku : C'est la classe principale. Elle contient le code permettant l'initialisation (init()) et l'affichage en console, ainsi que l'interface graphique (display()), et les différentes listes des cases, lignes, colonnes et carrés. Ses différentes méthodes permettent de gérer ces derniers objets. – 4) Conclusion Nous avons créé un programme de Sudoku, permettant aussi bien l'affichage et la gestion graphique, ainsi qu'un affichage en mode console. Le développement de ce jeu en 2 phases nous a permis une approche plus claire de la programmation. La première phase de réflexion et de conception, qui découle de notre cahier des charges (conception objet pure), a fixé de fait les différentes méthodes et attributs pour chaque classe. La seconde phase, de codage, s'est déroulée à l'aide de la javadoc. Informatique – Conception d'un programme de Sudoku page 2/3 Durocher Nicolas Noblet Loïg FA09 Contenu du fichier sudoku.txt 216 411 614 815 328 423 625 726 132 931 148 444 647 946 356 753 267 469 661 964 175 972 387 482 686 789 294 495 698 897 Informatique – Conception d'un programme de Sudoku page 3/3