gl_team_bleu/docs/Composant dem-kul-gom/elements_doc.md

47 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2025-07-12 19:18:13 +02:00
# Documentation des Elements
## Diagramme de Classe
### Diagramme
Les classes Engineer et SolarPannel implémentent l'interface SimulableElements.
![Diagramme de Classe](./element_ClassDiagramm.jpg)
### Explications des méthodes et variables
#### Simulable Element
- setSimulableBoard(SimulableBoard board) est une méthode qui permet de définir la board. Il est également possible de déassigner la board en passant le mot-clé null. Une exception est levée si on essaie de changer la board
- getSimulableBoard() est la méthode qui permet de récupérer la board où se trouve l'élément.
- action() permet d'effectuer une action spécifique à l'ingénieur ou au SolarPannel. Une exception est générée en cas de board non définie.
- getState() permet de récupérer l'état de l'élément en fournissant au minimum la position "x" et "y". Une exception est générée en cas de board non définie.
#### SolarPannel
Variables :
- energy contient l'énergie produite par le panneau solaire
- timetolive contient la durée de vie restante du panneau
- name contient le nom du Panneau Solaire selon "SP" + ID
- elementBoard contient la board définie pour l'élément
Méthodes :
- SolarPannel(int id) permet d'initialiser le SolarPannel en générant aléatoirement sa durée de vie et en y définissant un nom
- toString() offre la représentation en caractère du SolarPannel
- damageSolarPannel() offre la possibilité d'endommager le panneau solaire à chaque fois qu'un ingénieur rencontre un SolarPannel. Dans le pire des cas, l'ingénieur peut détruire l'élément
- action() permet de produire un nombre aléatoire d'énergie et va décrémenter la durée de vie de l'élément. Si le temps de vie est 0, alors le panneau solaire sera retiré de la board
### Engineer
Variables :
- name contient le nom de l'ingénieur selon "EN" + ID
- elementBoard contient la board définie pour l'élément
- actualID contient l'identifiant du futur panneau solaire placé par l'ingénieur
Méthodes :
- Engineer(int id) est le constructeur permettant d'initialiser l'ingénieur
- toString() offre la représentation en caractère du SolarPannel
- action() va effectuer un déplacement aléatoire dans la grille, contrôler qu'aucun panneau solaire n'est déjà présent. Si ce n'est pas le cas alors il en crée un nouveau. Sinon, il va endommager le panneau.
## Diagramme de séquence
Le diagramme suivant représente le fonctionnement des éléments à savoir :
- la création d'un ingénieur
- L'action d'un ingénieur (avec création d'un panneau)
- La récupération de l'état des éléments
![Diagramme de Classe](./SequenceDiagrammElements.jpg)
## Diagramme d'activité
Le diagramme d'activité suivant représente les étapes de fonctionnement des éléments
![Diagramme de Classe](./ActivityDiagram.jpg)