IUT DE CAEN Projet : Le puzzle
ALGO-PROG 2AIT
Mohamad.Elfalou@info.unicaen.fr,Jean.Fromentin@info.unicaen.fr Julien.Lebranchu@info.unicaen.fr,Yannick.Silvestre@info.unicaen.fr
1 Le puzzle
Un puzzle1ou casse-tête est un jeu de patience qui consiste à reconstituer un objet à deux ou trois dimensions à l’aide de pièces qui s’emboîtent les unes dans les autres.
La méthode de résolution communément pratiquée passe par les étapes suivantes : 1. recherche des coins : les quatre pièces formant les coins du puzzle complet se
repèrent par l’absence d’excroissance ou de creux sur deux côtés contigus ; 2. recherche des bords : les bords se repèrent par l’absence d’excroissance ou de
creux sur un des quatre côtés ;
3. remplissage : il faut ensuite assembler le reste des pièces, soit à partir des bords, soit à partir des éléments les plus aisément reconnaissables sur l’image (par exemple le personnage ou le monument principal) ;
4. pour ne pas avoir à piocher au hasard une pièce parmi plusieurs centaines, voire plusieurs milliers, on peut au préalable trier les pièces par couleur dominante ou par la forme de leurs excroissances et de leurs creux.
Les figures 1 et 2 représentent deux exemples de puzzle, la figure 1 étant plus traditionnelle que la figure2.
FIGURE 1 – Découpage (quasi-) tradi- tionnel.
FIGURE 2 – Découpage en cercles concentriques.
1. Source :http://fr.wikipedia.org/wiki/Puzzle
2 Présentation du sujet
L’objectif de ce travail est de réaliser une application permettant de reconstituer un puzzle. Les différentes fonctionnalités implémentées devront permettre de résoudre le puzzle en suivant la démarche énoncée précédemment.
2.1 Travail à réaliser
Le programme devra donc offrir les fonctionnalités suivantes : Fonctionnalités de base :
– charger une partie ;
– sauvegarder une partie en cours ;
– charger une image et la découper ennpièces ayant des cavités et des excrois- sances de formes simples (voir la figure3) ou plus complexes ;
– afficher l’image à reconstituer.
Disposition des pièces : deux zones distinctes devront être prévues : – une zone permettant la reconstitution du puzzle ;
– une zone permettant la sélection des pièces du puzzle. Cette zone devra conte- nir un ensemble de boîtes permettant de trier les pièces selon certains critères en les déposant dedans (les pièces pourront se superposer).
Déplacement et rotation des pièces : on donnera la possibilité à l’utilisateur de sé- lectionner les pièces par un clic gauche de souris, et on autorisera uniquement des rotations de 90 degrés ;
FIGURE3 – Exemple de pièce de formes simples(triangle, carré, cercle, . . .).
Ces différentes fonctionnalités pourront s’illustrer graphiquement comme à la fi- gure4:
1. La zone où le puzzle est reconstitué. Il sera possible de laisser quelques pièces autour du contour du puzzle. Les pièces ne devront pas se chevaucher.
2. La zone où les pièces du puzzle, contenu dans une des boîtes, se trouve pour faire un choix des pièces.
3. La zone des différentes boîtes dans lesquelles sont rangées les pièces triées par l’utilisateur.
4. La zone affichant l’image à reconstituer.
5. Le champ permettant de faire une recherche sur les propriétés des pièces. Les pièces ainsi trouvées pourront être mises en évidence par exemple avec un contour plus épais.
6. Le popup, activé à partir de la barre de menu, permettant de charger une image quelconque et de la découper dans le nombre de pièces indiquées (ou proposer une liste de pièces possibles en fonction de la taille de l’image).
2
1
3
4
Charger le fichier à découper
Nb de pièce
OK Cancel
Browse
6
5
FIGURE 4 – Interface graphique de l’application.
Un certain nombre de fonctionnalités supplémentaire pourront être ajoutées : – offrir la possibilité de modifier la couleur de fond du plateau ;
– ajouter des boîtes en nombres ; – . . .
2.2 Travail à rendre
Le devoir sera à rendre le 7 décembre 2009 sous forme de JAR, il devra être accom- pagné d’un rapport de 5 pages (sans compter les pages de présentation et de possibles annexes) au format PDF2comprenant :
– des explications sur la réalisation du devoir ; – les difficultés rencontrées ;
– l’architecture des classes de votre projet.
La réception du projet sera suivie d’une démonstration de 10 à 15 minutes par le binôme à une date communiquée ultérieurement. Votre code source devra être abon- damment commenté. Le projet est à faire en binôme, nous autorisons les monômes (cas particuliers).Interdiction de composer en trinômes ou plus.
2. Pas de format doc, docx, odt ou autres, uniquement du PDF. Pour information, il existe des lo- giciels gratuits sous Windows pour imprimer en PDF (PDFCreator). Pour MacOs et Linux, cette fonc- tionnalité est déjà intégrée à l’OS.