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

Documents pareils