# đ 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]]