# 🐟 Travail autonome — ModĂ©liser les classes du projet *Wa-Tor* Ce travail a pour objectif de vous faire **analyser un systĂšme rĂ©el**, d’en extraire les objets pertinents, puis de construire **un diagramme de classes UML complet** reprĂ©sentant la dynamique du modĂšle. # 🌊 1. PrĂ©sentation du projet *Wa-Tor* *Wa-Tor* est un modĂšle de simulation **proie-prĂ©dateur**, utilisĂ© en Ă©cologie artificielle et en modĂ©lisation des systĂšmes complexes. Le monde est reprĂ©sentĂ© par une **grille Ă  deux dimensions**, dans laquelle Ă©voluent deux espĂšces : - les **thons** (proies 🐟) - les **requins** (prĂ©dateurs 🩈) Chaque case de la grille contient **au plus un poisson** (thon *ou* requin). ![[Capture d’écran 2025-11-22 Ă  14.48.33.png]] # 🎯 2. RĂšgles de fonctionnement du modĂšle Le systĂšme Ă©volue Ă©tape par Ă©tape. À chaque itĂ©ration : 1. Une **case alĂ©atoire** est sĂ©lectionnĂ©e dans l’environnement. 2. S’il y a un poisson dans cette case, celui-ci : - tente de **se dĂ©placer**, - peut **se reproduire**, - peut **mourir** (selon des rĂšgles propres Ă  son espĂšce). L’objectif global est d’observer l’évolution respective des **populations** de thons et de requins au fil du temps. # 🐟 3. Comportement des thons (proies) Les thons : - peuvent se dĂ©placer vers **l’une des 8 cases voisines** (haut, bas, gauche, droite, et diagonales) - ne peuvent se dĂ©placer **que si la case est libre** - se reproduisent selon une **pĂ©riode fixe** → aprĂšs un dĂ©placement rĂ©ussi, un **nouveau thon apparaĂźt sur la case libĂ©rĂ©e** RĂ©capitulatif : - ✔ DĂ©placement : uniquement vers une case vide - ✔ Reproduction : aprĂšs dĂ©placement, si la pĂ©riode est atteinte - ✖ Pas de prĂ©dation - ✖ Pas de mort naturelle # 🩈 4. Comportement des requins (prĂ©dateurs) Les requins : - peuvent se dĂ©placer vers une des **8 cases voisines** - la case voisine peut ĂȘtre : - **libre** → dĂ©placement simple - **occupĂ©e par un thon** → le requin **mange le thon** et prend sa place - se reproduisent selon une pĂ©riode dĂ©diĂ©e - peuvent **mourir de faim** s’ils ne mangent pas assez souvent RĂ©capitulatif : - ✔ DĂ©placement : vers case libre **ou** occupĂ©e par un thon - ✔ PrĂ©dation : mange le thon → rĂ©initialise le compteur de faim - ✔ Reproduction : mĂȘme rĂšgle que les thons (pĂ©riode propre) - ✖ Mort de faim : si trop long sans manger # đŸ—ș 5. Structure de l’environnement L’environnement se modĂ©lise par : - une **grille 2D** - chaque case contient : - soit **rien** - soit un **Thon** - soit un **Requin** Le programme doit permettre de : - sĂ©lectionner une position alĂ©atoire - rĂ©cupĂ©rer l’élĂ©ment prĂ©sent - mettre Ă  jour les dĂ©placements - gĂ©rer les naissances/morts - suivre les populations au cours du temps # đŸ§© 6. Travail demandĂ© : ModĂ©lisation UML À partir des rĂšgles ci-dessus, votre objectif est de produire un **diagramme de classes UML complet** reprĂ©sentant fidĂšlement le modĂšle *Wa-Tor*. Votre diagramme doit inclure : ### 🟩 1. Les classes pertinentes Exemples possibles (liste non exhaustive) : - Environnement - Poisson (classe gĂ©nĂ©rique ?) - Thon - Requin - Case / Position - MoteurDeSimulation - ParamĂštres / Constantes ### 🟧 2. Les attributs essentiels Pour chaque classe, identifier : - les donnĂ©es permanentes - les compteurs (faim, reproduction
) - la position dans la grille - les caractĂ©ristiques propres Ă  chaque espĂšce ### đŸŸ© 3. Les mĂ©thodes importantes Par exemple : - seDeplacer() - seReproduire() - mourir() - manger() - choisirCaseVoisine() - iteration() - mettreAJourGrille() ### 🟹 4. Les relations UML - associations - cardinalitĂ©s - compositions (ex. : Environnement → Cases) - gĂ©nĂ©ralisations / spĂ©cialisations (hĂ©ritage) ### đŸŸ„ 5. Une hiĂ©rarchie cohĂ©rente En particulier : - Thon et Requin doivent-ils hĂ©riter d’une classe Poisson ? - Environnement doit-il contenir les poissons ou les gĂ©rer indirectement ? - Les rĂšgles doivent-elles ĂȘtre contenues dans des classes dĂ©diĂ©es ? # 📝 CorrigĂ© — Diagramme UML officiel du modĂšle *Wa-Tor* Voici un corrigĂ© possible, Ă  ne consulter qu'aprĂšs avoir essayĂ© de modĂ©liser le projet par toi-mĂȘme. > [!note]- CorrigĂ© UML > > ![[Capture d’écran 2025-11-22 Ă  14.51.38.png]] # 🟩 1. Classe **Environnement** ### Attributs - **nbLignes : Entier** - **nbColonnes : Entier** ### MĂ©thodes - **Environnement(Entier, Entier, Entier, Entier, Entier, Entier, Entier)** - **getNbLignes() : Entier** - **getNbColonnes() : Entier** - **getTabT(Entier, Entier) : Thon** - **getTabR(Entier, Entier) : Requin** - **getNbCases() : Entier** - **getNbThons() : Entier** - **getNbRequins() : Entier** - **evoluer()** ### Relations - **Environnement 1 — * Thon** (composition) - **Environnement 1 — * Requin** (composition) âžĄïž Les thons et requins n’existent que dans leur environnement. # đŸŸ© 2. Classe **Thon** ### Attributs - **vivant : BoolĂ©en** - **cycleDeReproduction : Entier** - **nbToursAvantReproduction : Entier** ### MĂ©thodes - **Thon(Entier)** - **getVivant() : BoolĂ©en** - **getCycleDeReproduction() : Entier** - **getNbToursAvantReproduction() : Entier** - **setVivant(BoolĂ©en)** - **setCycleDeReproduction(Entier)** - **setNbToursAvantReproduction(Entier)** - **tour()** ExĂ©cute un tour de simulation : dĂ©placement + reproduction - **reproduire()** Produit un nouveau thon si condition remplie - **recopier(Thon)** Copie l’état d’un autre thon âžĄïž **Thon est la classe mĂšre.** # đŸŸ„ 3. Classe **Requin** *(hĂ©rite de Thon)* ### Attributs spĂ©cifiques - **cycleDeFamine : Entier** - **nbToursAvantFamine : Entier** ### MĂ©thodes spĂ©cifiques - **Requin(Entier, Entier)** - **getNbToursAvantFamine() : Entier** - **getCycleDeFamine() : Entier** - **setNbToursAvantFamine(Entier)** - **setCycleDeFamine(Entier)** ### MĂ©thodes hĂ©ritĂ©es de Thon (et potentiellement redĂ©finies) - **tour()** - **reproduire()** - **recopier(Requin)** âžĄïž Le requin possĂšde les mĂȘmes mĂ©canismes de reproduction que le thon, mais **ajoute sa logique de faim**. âžĄïž UML : La flĂšche `Requin → Thon` signifie que **Requin est une sous-classe de Thon**. # 🏁 Conclusion du corrigĂ© Ce modĂšle UML incorpore correctement : - la **composition** Environnement → (Thons & Requins) - la **gĂ©nĂ©ralisation** Requin → Thon - les attributs biologiques (reproduction, famine) - les mĂ©thodes essentielles de simulation - une modĂ©lisation simple et directement implĂ©mentable en Java Ce diagramme constitue la base officielle pour le projet Wa-Tor. # đŸ—“ïž Historique > DerniĂšre mise Ă  jour : 22 novembre 2025 > RĂ©digĂ© par : [[Julien DUQUENNOY]]