| **LEIZOUR** | **Lukian** | **DEMON** | **Jérémy** | |------------------|-------------|-------------|---------|
ENSIBS_LOGO

# Compte Rendu du Diagrammes de Classes et d'Instances ## Diagramme de Classe ### 1. Jeu La classe jeu permettra l'initialisation et le lancement. - **Relations** : - Contient plusieurs instances de la classe `Joueur` (relation "joueur"). - Contient plusieurs instances de la classe `Plateau` (relation "plateau"). ### 2. Joueur Défini le nom et les actions du joueur. - **Attributs** : - `nom` : String - **Relations** : - Associe un joueur à une `Flotte` (relation "flotte"). - Un joueur peut effectuer des `Coup` (relation "coups"). ### 3. Flotte Stock les instances bateaux. - **Relations** : - Contient plusieurs instances de la classe `Bateau` (relation "bateaux"). ### 4. Bateau Défini les bateaux. - **Attributs** : - `type` : TypeBateau (énumération) - `longueur` : Integer - `etat` : EtatBateau (énumération) - `x1` : Integer - `y1` : Integer - `x2` : Integer - `y2` : Integer - **Relations** : Aucune relation spécifique n'est listée. ### 5. Plateau Stock les cases. - **Relations** : - Contient plusieurs instances de la classe `Case` (relation "cases"). ### 6. Case Défini l'état d'une case et sa position. - **Attributs** : - `x` : Integer - `y` : Integer - `type` : TypeCase (énumération) - **Relations** : Aucune relation spécifique n'est listée. ### 7. Coup Défini un coup qui va changer l'état de la case par la suite. - **Attributs** : - `type` : TypeCoup (énumération) - **Relations** : - Associe un coup à une `Case` (relation "case"). ## Énumérations ### 1. TypeCase - **Valeurs** : Vide, Bateau, Touché, Raté ### 2. EtatBateau - **Valeurs** : Opérationnel, Coulé ### 3. TypeCoup - **Valeurs** : Raté, Touché, Touché_Coulé ### 4. TypeBateau - **Valeurs** : Torpilleur, Contre_Torpilleur, Croiseur, Porte_Avions ## Relations - Un `Jeu` contient plusieurs `Joueur` et `Plateau`. - Un `Joueur` possède une `Flotte` et effectue des `Coup`. - Une `Flotte` contient plusieurs `Bateau`. - Un `Plateau` contient plusieurs `Case`. - Un `Coup` est associé à une `Case`. Ce diagramme de classe permet de modéliser les interactions entre les différents éléments du jeu de bataille navale, en définissant clairement les attributs et les relations entre les classes. ## Diagrammes d'Instances ### Jeu Initialise le jeu avec les 2 joueurs. - Instance : jeu1 - Relations : - Contient deux instances de Joueur : joueur1 et joueur2. - Contient deux instances de Plateau : plateau1 et plateau2. ### Joueur Initialise les joueur avec leurs attributs et leur flotte. - Instances : - joueur1 : - nom : Alpha - Relations : - Possède une instance de Flotte : flotte1. - Effectue des coups (non spécifiés dans ce diagramme). - joueur2 : - nom : Beta - Relations : - Possède une instance de Flotte : flotte2. - Effectue des coups (non spécifiés dans ce diagramme). ### Flotte Contient les bateaux différents en vie du joueur. - Instances : - flotte1 : - Relations : - Contient plusieurs instances de Bateau : bateau1, bateau2, bateau3, bateau4, bateau5. - flotte2 : - Relations : - Contient plusieurs instances de Bateau : bateau6, bateau7, bateau8, bateau9, bateau10. ### Bateau On vient définir les 5 bateaux disponibles. On les déclares 2 fois afin d'avoir un positionnement différent pour les deux joueurs (Ici seuls ceux du joueur 1 sont mis par soucis de lisibilité.). - Instances : - bateau1 : - type : Torpilleur - longueur : 2 - etat : Opérationnel - x1 : 1 - y1 : 1 - x2 : 1 - y2 : 1 - bateau2 : - type : Contre_Torpilleur - longueur : 3 - etat : Opérationnel - x1 : 3 - y1 : 3 - x2 : 3 - y2 : 3 - bateau3 : - type : Croiseur - longueur : 3 - etat : Opérationnel - x1 : 5 - y1 : 5 - x2 : 5 - y2 : 5 - bateau4 : - type : Porte_Avions - longueur : 4 - etat : Opérationnel - x1 : 4 - y1 : 4 - x2 : 4 - y2 : 4 - bateau5 : - type : Torpilleur - longueur : 2 - etat : Opérationnel - x1 : 6 - y1 : 6 - x2 : 6 - y2 : 6 ### Plateau Définit les 2 plateaux, celui d'attaque,où l'on tire, et celui ou l'on place les bâteaux dit de défense - Instances : - plateau1 : - Relations : - Contient plusieurs instances de Case : case1, case2, case3. - plateau2 : - Relations : - Contient plusieurs instances de Case (non spécifiées dans ce diagramme). ### Case Concernant les cases, chaque plateau est composés de 100 cases or on ne peut pas toute les initialiser car cela prendrais trop de place sur le diagramme. - Instances : - case1 : - x : 1 - y : 1 - type : Vide - case2 : - x : 2 - y : 2 - type : Raté - case3 : - x : 3 - y : 3 - type : Vide ### Relations - Un Jeu (jeu1) contient deux Joueur (joueur1 et joueur2) et deux Plateau (plateau1 et plateau2). - Chaque Joueur possède une Flotte (flotte1 pour joueur1 et flotte2 pour joueur2). - Chaque Flotte contient plusieurs Bateau (bateau1 à bateau5 pour flotte1 et bateau6 à bateau10 pour flotte2). - Chaque Plateau contient plusieurs Case (case1 à case3 pour plateau1). Ce diagramme d'instances illustre une configuration de début du jeu de bataille navale, montrant comment les différentes instances des classes interagissent entre elles.