La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LE SUDOKU PROJET PARCOURS GSI BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée 1.

Présentations similaires


Présentation au sujet: "LE SUDOKU PROJET PARCOURS GSI BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée 1."— Transcription de la présentation:

1 LE SUDOKU PROJET PARCOURS GSI BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée 1

2 Objectifs et Organisation 2

3 Objectifs Réalisation dune interface graphique permettant de jouer au Sudoku Mise en place des algorithmes de génération et de résolution dune grille Ajout doptions 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 3

4 Organisation Jour 1 Analyse du problème, mise en place du modèle de données et première ébauche dinterface graphique Jour 2 Finalisation de linterface 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 linterface, implémentation dun solveur optimisé et mise en place de divers tests 4

5 Architecture 5

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 dinstructions |-- 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 6

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 7

8 Diagramme de classe 8

9 IA - Génération et Résolution 9

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 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 10

11 Solveur Optimisé Algorithme première partie : Restriction des valeurs possibles par lignes colonnes et zones, Pour chaque case vide, sil ny a quune seule valeur possible, on lui affecte cette valeur, Première vérification: pour chaque cases, si la case est vide na pas de valeur possible, ou si la case nest pas vide et sa valeur nest pas parmi les valeurs possibles, la grille actuelle nest pas possible Algorithme première partie : Restriction des valeurs possibles par lignes colonnes et zones, Pour chaque case vide, sil ny a quune seule valeur possible, on lui affecte cette valeur, Première vérification: pour chaque cases, si la case est vide na pas de valeur possible, ou si la case nest pas vide et sa valeur nest pas parmi les valeurs possibles, la grille actuelle nest pas possible 11

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. 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. 12

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é 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é 13

14 Solveur Optimisé En résumé : Utilise la notion darbre, Rapidité due à lutilisation dun tableau statique à deux dimensions de vecteurs dentiers Permet daccéder à tout moment aux valeurs possibles pour une case donnée de la grille. En résumé : Utilise la notion darbre, Rapidité due à lutilisation dun tableau statique à deux dimensions de vecteurs dentiers Permet daccéder à tout moment aux valeurs possibles pour une case donnée de la grille. 14

15 Génération par famille (obsolète) Sélection Pivot Famille valide Ajout Compatible Détection de boucle infinie Sélection Pivot Famille valide Ajout Compatible Détection de boucle infinie 15

16 Génération Génération Aléatoire Gestion de ModeleGrille résolue Suppression de valeurs Génération Aléatoire Gestion de ModeleGrille résolue Suppression de valeurs 16

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 17

18 Pérennité et Ligne de Commandes Blanc Nicolas – Brabant Benjamin – Planté Timothée 18

19 Pérennité des données Stockage des grilles sous forme de fichiers texte contenant une succession de ligne de la forme : Avec un entier entre 0 et 9 Possibilité de lecture dun 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. 19

20 Ligne de commande Gestion doptions par ligne de commande Aucune option saisie : lancement interface graphique -rc : résolution classique des grilles valides de fichier_entree et affichage console -ro : résolution optimisée des grilles valides de fichier_entree et affichage console -g : génération dune grille et affichage console -g : 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 : écriture des résultats dans fichier_sortie et désactivation de laffichage console 20

21 « Cest un jeu. Ce fût des larmes, de la sueur et du développement ! » Aperçu du programme 21

22 Interface graphique 22

23 Menu Principal Au lancement de lapplication (sans saisie doptions), affichage du menu principal laissant les choix : Nouvelle partie Charger partie Quitter 23

24 Nouvelle Partie – Charger Partie 24

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 25

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 26

27 Résolution Le clic sur le bouton résoudre remplace les valeurs modifiables de la grille quelquesoit celles saisies par lutilisateur. Licône « validée » permet de bien constater que la grille est juste 27

28 Commandes Shell 28

29 Résolution classique 29

30 Résolution optimisée 30

31 Génération 31

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 32

33 LE SUDOKU PROJET PARCOURS GSI Blanc Nicolas – Brabant Benjamin – Planté Timothée Questions ? 33


Télécharger ppt "LE SUDOKU PROJET PARCOURS GSI BLANC Nicolas – BRABANT Benjamin – PLANTE Timothée 1."

Présentations similaires


Annonces Google