Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
cnam:utc503:td2 [2024/09/25 23:42] – jcheron | cnam:utc503:td2 [2025/09/09 13:09] (Version actuelle) – jcheron | ||
---|---|---|---|
Ligne 150: | Ligne 150: | ||
==== Question ==== | ==== Question ==== | ||
* Représenter le diagramme de classes | * Représenter le diagramme de classes | ||
+ | |||
+ | |||
+ | ===== Escape game ===== | ||
+ | |||
+ | Objectif : Concevoir et implémenter un système simplifié pour un escape game en mode console. Les joueurs devront résoudre des énigmes dans des salles thématiques pour s’échapper avant la fin du temps imparti. | ||
+ | |||
+ | ==== Consignes Générales ==== | ||
+ | |||
+ | * Travail en binôme. | ||
+ | * Langage : Java. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Cahier des Charges ==== | ||
+ | |||
+ | === 1. Classes à Implémenter === | ||
+ | < | ||
+ | <uml> | ||
+ | @startuml EscapeGame_POO_Base | ||
+ | |||
+ | ' ========== CLASSES ========== | ||
+ | class EscapeGame { | ||
+ | - salles: List< | ||
+ | - joueurs: List< | ||
+ | + ajouterSalle(Salle): | ||
+ | + demarrerPartie(Joueur, | ||
+ | + afficherClassement(): | ||
+ | } | ||
+ | |||
+ | class Salle { | ||
+ | - nom: String | ||
+ | - enigmes: List< | ||
+ | - tempsLimite: | ||
+ | - estTerminee: | ||
+ | + ajouterEnigme(Enigme): | ||
+ | + resoudreEnigme(String, | ||
+ | + estTerminee(): | ||
+ | + afficherEnigmesNonResolues(): | ||
+ | + toString(): String | ||
+ | } | ||
+ | |||
+ | class Enigme { | ||
+ | - titre: String | ||
+ | - description: | ||
+ | - codeSolution: | ||
+ | - estResolue: boolean | ||
+ | + resoudre(String): | ||
+ | + estResolue(): | ||
+ | + toString(): String | ||
+ | } | ||
+ | |||
+ | class Joueur { | ||
+ | - pseudo: String | ||
+ | - score: int | ||
+ | - sallesTerminees: | ||
+ | + ajouterSalleTerminee(Salle): | ||
+ | + afficherStatistiques(): | ||
+ | } | ||
+ | |||
+ | ' ========== RELATIONS ========== | ||
+ | EscapeGame " | ||
+ | EscapeGame " | ||
+ | Salle " | ||
+ | Joueur " | ||
+ | |||
+ | ' ========== NOTES ========== | ||
+ | note top of EscapeGame | ||
+ | **Classe principale** | ||
+ | Gère les salles et les joueurs. | ||
+ | Peut lancer une partie. | ||
+ | end note | ||
+ | |||
+ | note right of Enigme | ||
+ | **Une énigme peut être :** | ||
+ | - Un code à deviner | ||
+ | - Un objet à trouver | ||
+ | - Une devinette | ||
+ | end note | ||
+ | |||
+ | note left of Salle | ||
+ | **Une salle a :** | ||
+ | - Un temps limite (en minutes) | ||
+ | - Plusieurs énigmes à résoudre | ||
+ | end note | ||
+ | |||
+ | @enduml | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | ==== 2. Fonctionnalités ==== | ||
+ | === 🔹 Gestion des Énigmes === | ||
+ | **Une énigme a (attributs) : | ||
+ | * Un titre et une description (affichés en console). | ||
+ | * Un code solution (ex : " | ||
+ | * Un état (resolue ou non). | ||
+ | |||
+ | |||
+ | **Méthodes :** | ||
+ | * resoudre(String tentative) : Compare la tentative du joueur au code solution. | ||
+ | * toString() : Affiche l’énigme de manière lisible (sans spoiler la solution). | ||
+ | |||
+ | |||
+ | |||
+ | == 🔹 Gestion des Salles == | ||
+ | |||
+ | |||
+ | **Une salle a :** | ||
+ | * Un nom (ex : "La Bibliothèque Maudite" | ||
+ | * Une liste d’énigmes. | ||
+ | * Un temps limite (en minutes, simulé en console). | ||
+ | |||
+ | |||
+ | **Méthodes :** | ||
+ | * ajouterEnigme(Enigme) : Ajoute une énigme à la salle. | ||
+ | * resoudreEnigme(int index, String reponse) : Tente de résoudre une énigme par son index. | ||
+ | * estTerminee() : Retourne true si toutes les énigmes sont résolues. | ||
+ | |||
+ | |||
+ | |||
+ | == 🔹 Interaction en Console == | ||
+ | |||
+ | |||
+ | **Le programme doit permettre de :** | ||
+ | * Afficher les énigmes disponibles dans une salle. | ||
+ | * Sélectionner une énigme (par numéro) et entrer une réponse. | ||
+ | * Recevoir un feedback (ex : "🔓 Énigme résolue !" ou "❌ Mauvaise réponse" | ||
+ | * Passer à la salle suivante si toutes les énigmes sont résolues. | ||
+ | |||
+ | == Règles de gestion supplémentaires == | ||
+ | * Une salle doit connaître la salle suivante. | ||
+ | * Il existe plusieurs types de salles : | ||
+ | * Celles par défaut où il faut résoudre toutes les énigmes pour sortir | ||
+ | * Celles où il faut juste en résoudre une seule (à condition que l' | ||
+ | * Celles où l'une des énigmes ne doit pas être résolue... | ||
+ | * La salle de sortie, correspondant à la fin du jeu | ||
+ | |||