le sudoku projet parcours gsi
DESCRIPTION
LE Sudoku Projet Parcours GSI. BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée. Objectifs et Organisation. Objectifs. Réalisation d’une interface graphique permettant de jouer au Sudoku Mise en place des algorithmes de génération et de résolution d’une grille - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/1.jpg)
1
LE SUDOKU PROJET PARCOURS GSI
BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée
![Page 2: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/2.jpg)
2 Objectifs et Organisation
![Page 3: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/3.jpg)
3
Objectifs
Réalisation d’une interface graphique permettant de jouer au Sudoku
Mise en place des algorithmes de génération et de résolution d’une grille
Ajout d’options en ligne de commandes pour générer et résoudre des fichiers de grilles
Pérennité des données sous forme de fichiers textes formatés
![Page 4: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/4.jpg)
4
Organisation Jour 1
Analyse du problème, mise en place du modèle de données et première ébauche d’interface graphique
Jour 2 Finalisation de l’interface graphique, début de réflexion
sur un algorithme de génération par famille Jour 3
Mise en place des options en ligne de commandes et implémentation de la première IA de résolution
Jour 4 Finalisation de l’interface, implémentation d’un solveur
optimisé et mise en place de divers tests
![Page 5: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/5.jpg)
5 Architecture
![Page 6: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/6.jpg)
6
Organisation des fichiers
|-- build : généré à la compilation -- classes : contient le bytecode java
|-- build.xml : fichier de génération ant |-- README.txt : fichier d’instructions |-- release : dossier des éléments de distribution
|-- jar : contient les archives jar |-- ressources : dossier des ressources externes
|-- files : dossier des fichiers de chargement Sudoku |-- images : images du projet
![Page 7: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/7.jpg)
7
Structure du modèle Architecture MVC (Modèle Vue Contrôleur) et
pattern Observer pour la relation Modèle-Vue Classe centrale Sudoku contenant une
instance de MoteurJeu contenant la grille de jeu accessible partout
Classe ModeleGrille subdivisée en ModeleZone et en ModeleCase
Classes SolveurClassique, SolveurOptimise et Generateur permettant une génération et résolution externe à ModeleGrille
![Page 8: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/8.jpg)
8
Diagramme de classe
![Page 9: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/9.jpg)
9 IA - Génération et Résolution
![Page 10: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/10.jpg)
10
Solveur Classique (obsolète)
Construire la liste des valeurs possibles pour les cases vides (en ligne, colonne, zone)
FAIRE Choisir une case dont la cardinalité des valeurs possibles est
minimale Choisir/affecter une valeur parmi les valeurs possibles pour la
case Mettre à jour les valeurs possibles des autres cases vides,
enlever la valeur de cette case SI une intersection modifiée est devenue vide ALORS
Erreur -> retour au point de choix FIN SI
TANT QUE il reste encore une case vide
![Page 11: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/11.jpg)
11
Solveur Optimisé Algorithme première partie :
Restriction des valeurs possibles par lignes colonnes et zones,
Pour chaque case vide, s’il n’y a qu’une seule valeur possible, on lui affecte cette valeur,
Première vérification: pour chaque cases, si la case est vide n’a pas de valeur possible, ou si la case n’est pas vide et sa valeur n’est pas parmi les valeurs possibles, la grille actuelle n’est pas possible
![Page 12: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/12.jpg)
12
Solveur Optimisé Algorithme deuxième partie :
Pour chaque case vide, si une des possibilités de la case est unique sur la ligne, la colonne et la zone, on affecte cette valeur à la case.
![Page 13: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/13.jpg)
13
Solveur Optimisé Algorithme troisième partie :
Si la grille est bloquée, on prend une case qui possède le moins de valeurs possibles, on choisit une valeur et on essaie de finir la grille avec cette valeur. Si on arrive à une contradiction on revient en arrière et on prend une autre valeur possible.
On répète ces opérations jusqu’à la résolution de la grille, ou de son impossibilité
![Page 14: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/14.jpg)
14
Solveur Optimisé En résumé :
Utilise la notion d’arbre, Rapidité due à l’utilisation d’un tableau
statique à deux dimensions de vecteurs d’entiers
Permet d’accéder à tout moment aux valeurs possibles pour une case donnée de la grille.
![Page 15: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/15.jpg)
15
Génération par famille (obsolète)
Sélection Pivot
Famille valide
Ajout Compatible
Détection de boucle infinie
![Page 16: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/16.jpg)
16
Génération Génération Aléatoire
Gestion de ModeleGrille résolue
Suppression de valeurs
![Page 17: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/17.jpg)
17
Performances finales Résolution : 250 ms Résolution + Création : 360 ms Programme : 740 ms Résolution sûre
AI Escargot : 55 ms
Blanc Nicolas – Brabant Benjamin – Planté Timothée
![Page 18: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/18.jpg)
18 Pérennité et Ligne de Commandes
Blanc Nicolas – Brabant Benjamin – Planté Timothée
![Page 19: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/19.jpg)
19
Pérennité des données Stockage des grilles sous forme de fichiers texte
contenant une succession de ligne de la forme :<d> <d> <d> <d> <d> <d> <d> <d> <d>
Avec <d> un entier entre 0 et 9 Possibilité de lecture d’un fichier contenant une
succession de grilles et détection des grilles erronées
Assouplissement des contraintes au niveau des espacements des caractères et des caractères de fin de ligne
Gestion des erreurs liées à la lecture et l’écriture de données sur disque.
![Page 20: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/20.jpg)
20
Ligne de commande Gestion d’options par ligne de commande
Aucune option saisie : lancement interface graphique -rc <fichier_entree> : résolution classique des grilles
valides de fichier_entree et affichage console -ro <fichier_entree> : résolution optimisée des grilles
valides de fichier_entree et affichage console -g : génération d’une grille et affichage console -g <nb> : génération de nb grilles et affichage console
Possibilité de rediriger la sortie console vers un fichier texte contenant les grilles générées ou résolues :
-f <fichier_sortie> : écriture des résultats dans fichier_sortie et désactivation de l’affichage console
![Page 21: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/21.jpg)
21
« C’est un jeu. Ce fût des larmes, de la sueur et du développement ! »
Aperçu du programme
![Page 22: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/22.jpg)
22 Interface graphique
![Page 23: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/23.jpg)
23
Menu Principal Au lancement de
l’application (sans saisie d’options) , affichage du menu principal laissant les choix : Nouvelle partie Charger partie Quitter
![Page 24: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/24.jpg)
24
Nouvelle Partie – Charger Partie
![Page 25: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/25.jpg)
25
Valeurs Identiques
En cliquant une valeur initiale (et non modifiable) de la grille, affichage en surbrillance verte de toutes les valeurs identiques de la grille
![Page 26: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/26.jpg)
26
Famille de valeurs
En cliquant une valeur modifiable de la grille, en plus, affichage en surbrillance rouge de toutes les valeurs non nulles de la ligne, colonne et zone de la case sélectionnée
![Page 27: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/27.jpg)
27
Résolution
Le clic sur le bouton résoudre remplace les valeurs modifiables de la grille quelquesoit celles saisies par l’utilisateur.
L’icône « validée » permet de bien constater que la grille est juste
![Page 28: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/28.jpg)
28 Commandes Shell
![Page 29: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/29.jpg)
29
Résolution classique
![Page 30: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/30.jpg)
30
Résolution optimisée
![Page 31: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/31.jpg)
31
Génération
![Page 32: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/32.jpg)
32 Conclusion Une architecture MVC respectée au maximum Une génération et résolution par lecture de fichier en ligne de commande robuste Une IA optimale résolvant tout type de grille en un temps inférieur à la seconde Un modèle complet mais peu optimisé pour les calculs
![Page 33: LE Sudoku Projet Parcours GSI](https://reader036.vdocuments.pub/reader036/viewer/2022062323/5681638d550346895dd48193/html5/thumbnails/33.jpg)
33
LE SUDOKU PROJET PARCOURS GSI
Blanc Nicolas – Brabant Benjamin – Planté Timothée
Questions ?