From d976931f045559ff6077cbf7fa93bc086cc86e99 Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 18:06:08 +0100
Subject: [PATCH 01/23] =?UTF-8?q?Impl=C3=A9mentation=20des=20m=C3=A9thodes?=
 =?UTF-8?q?=20calculerCout=20et=20calculerPrix.=20Javadoc=20dans=20athlete?=
 =?UTF-8?q?.=20Suppresion=20de=20Personne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Club.java                  |   1 +
 src/cmisport/Equipe.java                |   3 +-
 src/cmisport/Humains/Athlete.java       | 113 +++++++++++++++++-------
 src/cmisport/Humains/Coach.java         |   9 +-
 src/cmisport/Humains/PersonelSante.java |   8 +-
 src/cmisport/Humains/Personne.java      |  27 ------
 src/cmisport/Produit.java               |  20 +----
 src/cmisport/Test.java                  |  13 +--
 8 files changed, 96 insertions(+), 98 deletions(-)
 delete mode 100644 src/cmisport/Humains/Personne.java

diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index 8258a6c..c3d99a8 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -55,6 +55,7 @@ public class Club{
         this.membres.add(new PersonelSante(nbPointsHumains.get(indexHumain).intValue(), 0.5));
         indexHumain++;
       }
+      this.reputation = new Reputation(0);
     }
 
 
diff --git a/src/cmisport/Equipe.java b/src/cmisport/Equipe.java
index 8c8f71e..8c68411 100644
--- a/src/cmisport/Equipe.java
+++ b/src/cmisport/Equipe.java
@@ -1,7 +1,8 @@
 package cmisport;
-import cmisport.Humains.Athlete;
 import java.util.HashSet;
 
+import cmisport.Humains.Athlete;
+
 /**
  * Classe regroupant un {@link cmisport.Club} avec une liste {@link cmisport.Humains.Athlete}.
  */
diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index cf2b965..b211500 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -5,9 +5,20 @@ import java.util.Map;
 import cmisport.Caracteristique;
 
 public class Athlete extends Humain {
-   private boolean estBlesse;
-   private boolean estCasse;
-   private boolean estInscrit;
+    /**
+     * Cet attribut indique si l'athlete est blessé ou non. Si c'est le cas, il ne peut pas participer à un évènement.
+     */
+    private boolean estBlesse;
+
+    /**
+     * Cet attribut indique si l'athlète est blessé ou non. Si c'est le cas, tous ses attributs sont divisés par deux 
+     */
+    private boolean estCasse;
+
+    /**
+     * Cet attribut indique si l'athlète est inscrit à un tournoi.
+     */
+    private boolean estInscrit;
    
 
     /**
@@ -21,7 +32,7 @@ public class Athlete extends Humain {
       this.estInscrit = false;
       this.caracteristiquesValeurs = cara;
       this.calculerReputation();
-  }
+    }
 
     /**
      * Constructeur effectuant les actions suivantes : 
@@ -36,6 +47,8 @@ public class Athlete extends Humain {
     public Athlete(Map<Caracteristique, Number> cara){
         super();
         this.initialiserAthlete(cara);
+        this.cout = calculerCout();
+        this.prix = calculerPrix();
     }
 
     /**
@@ -46,9 +59,9 @@ public class Athlete extends Humain {
     public Athlete(String nom, Map<Caracteristique, Number> cara){
       super(nom);
       this.initialiserAthlete(cara);
-  }
+    }
 
-  /**
+    /**
      * Constructeur générant un athlète avec un nom aléatoire et des caractéristiques dont la somme des valeurs vaut le nombre de points passés en paramètres.
      *
      * @param nbPoints La somme de toutes les valeurs des {@link #caracteristiquesValeurs} de l'athlete.
@@ -61,52 +74,84 @@ public class Athlete extends Humain {
       this.initialiserAthlete(caracteristiquesValeurs);
     }
 
+    /**
+     * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
+     */
     public void seBlesse(){
-            this.estBlesse = true;      
+        double fatigue = this.caracteristiquesValeurs.get(Caracteristique.FATIGUE).doubleValue();
+        if (fatigue >= 20){
+            double randomValue = (int)(Math.random() * 10);
+            double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
+            if (randomValue == randomValueFatigue){
+                this.setEstBlesse(true); 
+            }
+        }
     }
 
+    /**
+     * Méthode "cassant" l'athlète moralement si sa motivation est trop basse, avec une certaine probabilité dépendante de la motivation de l'athlète.
+     */
     public void seCasse(){
-        this.estCasse = true;     
+        double motivation = this.caracteristiquesValeurs.get(Caracteristique.MOTIVATION).doubleValue();
+        if (motivation <= 20){
+            double randomValue = (int)(Math.random() * 10);
+            double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
+            if (randomValue == randomValueMotivation){
+                this.setEstCasse(true); 
+            }
+        }     
     }
 
- 
-    public boolean EstBlesse() {
-        return estBlesse;
+    /**
+     * Overriding de la méthode abstraite calculerCout() de la classe Produit retournant le coût que le club doit dépenser chaque mois pour cet athlète.
+     * @return le coût de l'athlète en fonction de sa réputation
+     */
+    @Override
+    public double calculerCout() {
+        return ((double)this.reputation.get() * 10);
     }
 
-    public boolean estInscrit() {
-        return estInscrit;
+    /**
+     * Overriding de la méthode abstraite calculerPrix() de la classe Produit retournant le prix que le club doit dépenser pour acheter cet athlète.
+     * @return le prix de l'athlète en fonction de sa réputation
+     */
+    @Override
+    public double calculerPrix() {
+        return ((double)this.reputation.get() * 50);
     }
 
-    public void setInscrit(boolean i) {
-        this.estInscrit = i;
-    }
-    public void setBlesse(boolean estBlesse) {
-        this.estBlesse = estBlesse;
+    /**
+     * Getter de l'attribut {@link estBlesse}
+     * @return true si l'athlète est blessé, false sinon
+     */
+    public boolean getEstBlesse() {
+        return estBlesse;
     }
 
-    public boolean EstCasse() {
+    /**
+     * Getter de l'attribut {@link estCasse}
+     * @return true si l'athlète est cassé, false sinon
+     */
+    public boolean getEstCasse() {
         return estCasse;
     }
 
-    public void setCasse(boolean estCasse) {
-        this.estCasse = estCasse;
-    }
-
-    public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
-        this.caracteristiquesValeurs = caraVals;
+    /**
+     * Setter de l'attribut {@link estBlesse} en fonction du nouveau paramètre
+     * @param estBlesse le nouvel état du joueur
+     */
+    public void setEstBlesse(boolean estBlesse) {
+        this.estBlesse = estBlesse;
     }
 
-    @Override
-    public double calculerCout() {
-        // TODO Auto-generated method stub
-        return 3.4;
+    /**
+     * Setter de l'attribut {@link estCasse} en fonction du nouveau paramètre
+     * @param estCasse le nouvel état du joueur
+     */
+    public void setEstCasse(boolean estCasse) {
+        this.estCasse = estCasse;
     }
 
-    @Override
-    public double calculerPrix() {
-        // TODO Auto-generated method stub
-        return 3.4;
-    }
+    
 
 }
diff --git a/src/cmisport/Humains/Coach.java b/src/cmisport/Humains/Coach.java
index fb0ebed..0da771f 100644
--- a/src/cmisport/Humains/Coach.java
+++ b/src/cmisport/Humains/Coach.java
@@ -29,6 +29,8 @@ public class Coach extends Staff {
     super(nbAthleteMax);
     this.caracteristiquesValeurs = this.genererAttributsAleatoires(nbPoints.intValue(), deviation);
     this.calculerReputation();
+    this.prix = this.calculerPrix();
+    this.cout = this.calculerCout();
   }
 
   /** 
@@ -92,14 +94,13 @@ public class Coach extends Staff {
 
   @Override
   public double calculerCout() {
-    // TODO Auto-generated method stub
-    return 3.4;
+    
+    return ((double)this.reputation.get() * 5) ;
   }
 
   @Override
   public double calculerPrix() {
-    // TODO Auto-generated method stub
-    return 3.4;
+    return ((double)this.reputation.get() * 20);
   }
 
 }
diff --git a/src/cmisport/Humains/PersonelSante.java b/src/cmisport/Humains/PersonelSante.java
index b6b4f3d..f45f1d1 100644
--- a/src/cmisport/Humains/PersonelSante.java
+++ b/src/cmisport/Humains/PersonelSante.java
@@ -38,6 +38,8 @@ public class PersonelSante extends Staff {
     this.caracteristiquesValeurs = Caracteristique.genererMapCaracteristiqueNulles();
     caracteristiquesValeurs.put(this.role.getCaracteristiqueCible(), effet);
     this.calculerReputation();
+    this.prix = this.calculerPrix();
+    this.cout = this.calculerCout();
   }
 
   /** 
@@ -89,13 +91,11 @@ public class PersonelSante extends Staff {
 
   @Override
   public double calculerCout() {
-    // TODO Auto-generated method stub
-    return 3.4;
+    return ((double) this.reputation.get() * 4);
   }
 
   @Override
   public double calculerPrix() {
-    // TODO Auto-generated method stub
-    return 3.4;
+    return ((double) this.reputation.get() * 8);
   }
 }
diff --git a/src/cmisport/Humains/Personne.java b/src/cmisport/Humains/Personne.java
deleted file mode 100644
index 29c526b..0000000
--- a/src/cmisport/Humains/Personne.java
+++ /dev/null
@@ -1,27 +0,0 @@
-//package cmisport.Humains;
-///**
-// * Class permettant de crée des exepection pour la classe{@link Humain} du fait qu'elle soit une classe abstraite
-// */
-//public class Personne extends Humain {
-//        public Personne(String customName) {
-//            super(customName); // Appelle le constructeur de la classe abstraite
-//        }
-//
-//        @Override
-//        public double calculerCout() {
-//            // TODO Auto-generated method stub
-//            throw new UnsupportedOperationException("Unimplemented method 'calculerCout'");
-//        }
-//
-//        @Override
-//        public double calculerPrix() {
-//            // TODO Auto-generated method stub
-//            throw new UnsupportedOperationException("Unimplemented method 'calculerPrix'");
-//        }
-//
-//        
-//    
-//}
-//
-//
-//TODO a supprimer non ?????
\ No newline at end of file
diff --git a/src/cmisport/Produit.java b/src/cmisport/Produit.java
index fa5dc81..daed1ec 100644
--- a/src/cmisport/Produit.java
+++ b/src/cmisport/Produit.java
@@ -32,9 +32,9 @@ public abstract class Produit {
    * @param p Le prix du produit.
    * @param c Le cout du produit.
    */
-  public Produit(double p, double c){
-    this.prix = p;
-    this.cout = c;
+  public Produit(){
+    this.prix = 0;
+    this.cout = 0;
   }
 
   public void setPrix(double prix) {
@@ -51,17 +51,5 @@ public abstract class Produit {
 
   public double getCout(){
     return this.cout;
-  }
- 
-
-  //TODO modifier voire supprimer ça car ça n'a aucun sens
-  /**
-   * Constructeur qui calcule le {@link #cout} et le {@link #prix} en appelant les méthodes corespondantes.
-   */
-  public Produit(){
-    this.prix = this.calculerPrix();
-    this.cout = this.calculerCout();
-  }
-
- 
+  } 
 }
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index ab837a4..045ec96 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -5,7 +5,6 @@ import java.util.ArrayList;
 import cmisport.Humains.Athlete;
 import cmisport.Humains.Coach;
 import cmisport.Humains.PersonelSante;
-//import cmisport.Humains.Personne;
 
 public class Test {
   public static void testerAthlete(){
@@ -36,16 +35,6 @@ public class Test {
   public static void testerClub(){
     //TODO Vérifier que la génération marche bien mais y'a pas de raison (je n'avais pas le toString)
     Club club = new Club("FC OPTIM", 1,800,6, 0.5);
-    System.out.println(club);
+    System.out.println(club.toString());
   }
-//  public void testnom(String arg){
-//    try {
-//      Personne pHumain = new Personne(arg); 
-//      System.out.println("Nom Valide" + arg);
-//      
-//        
-//    } catch (IllegalArgumentException e ) {
-//      System.out.println("Nom invalide car exeption :" + e);
-//    }
-//  }
 }
-- 
GitLab


From 732f62c7dda5bec3e66cc829b371d0b8152f1692 Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 18:08:23 +0100
Subject: [PATCH 02/23] =?UTF-8?q?Impl=C3=A9mentation=20des=20m=C3=A9thodes?=
 =?UTF-8?q?=20calculerCout=20et=20calculerPrix.=20Javadoc=20dans=20athlete?=
 =?UTF-8?q?.=20Suppresion=20de=20Personne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Produit.java | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/cmisport/Produit.java b/src/cmisport/Produit.java
index daed1ec..f0be45f 100644
--- a/src/cmisport/Produit.java
+++ b/src/cmisport/Produit.java
@@ -28,9 +28,7 @@ public abstract class Produit {
   public abstract double calculerPrix();
   
   /**
-   * Constructeur permettant de fixer le {@link #prix} et le {@link #cout} du produit. 
-   * @param p Le prix du produit.
-   * @param c Le cout du produit.
+   * Constructeur permettant de fixer le {@link #prix} et le {@link #cout} du produit à 0. 
    */
   public Produit(){
     this.prix = 0;
-- 
GitLab


From 219bfd9dd2d9ede2bf53f49ac47d39cb60a19672 Mon Sep 17 00:00:00 2001
From: Le M <marius@jeaimepasgit.fr>
Date: Thu, 12 Dec 2024 17:44:06 +0100
Subject: [PATCH 03/23] Attribut inscrit dans Athlete

---
 src/cmisport/Humains/Athlete.java | 41 +++++++++++++++----------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index b211500..9343cb2 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -1,8 +1,10 @@
 package cmisport.Humains;
 
+import java.util.ArrayList;
 import java.util.Map;
 
 import cmisport.Caracteristique;
+import cmisport.EvenementSportif;
 
 public class Athlete extends Humain {
     /**
@@ -16,9 +18,9 @@ public class Athlete extends Humain {
     private boolean estCasse;
 
     /**
-     * Cet attribut indique si l'athlète est inscrit à un tournoi.
+     * Cet attribut indique si l'athlète est inscrit à un tournoi. Si c'est le cas, il ne peut l'être à un autre.
      */
-    private boolean estInscrit;
+   private ArrayList<EvenementSportif> inscrit = new ArrayList<>();
    
 
     /**
@@ -29,7 +31,6 @@ public class Athlete extends Humain {
     private void initialiserAthlete(Map<Caracteristique, Number> cara){
       this.estBlesse = false;
       this.estCasse = false;
-      this.estInscrit = false;
       this.caracteristiquesValeurs = cara;
       this.calculerReputation();
     }
@@ -83,7 +84,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
             if (randomValue == randomValueFatigue){
-                this.setEstBlesse(true); 
+                this.setBlesse(true); 
             }
         }
     }
@@ -97,7 +98,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
             if (randomValue == randomValueMotivation){
-                this.setEstCasse(true); 
+                this.setCasse(true); 
             }
         }     
     }
@@ -128,29 +129,27 @@ public class Athlete extends Humain {
         return estBlesse;
     }
 
-    /**
-     * Getter de l'attribut {@link estCasse}
-     * @return true si l'athlète est cassé, false sinon
-     */
-    public boolean getEstCasse() {
-        return estCasse;
+    public ArrayList<EvenementSportif> Inscrit() {
+        return inscrit;
     }
 
-    /**
-     * Setter de l'attribut {@link estBlesse} en fonction du nouveau paramètre
-     * @param estBlesse le nouvel état du joueur
-     */
-    public void setEstBlesse(boolean estBlesse) {
+    public void inscrire(EvenementSportif i) {
+        this.inscrit.add(i);
+    }
+
+    public void deInscrire(EvenementSportif i){
+        this.inscrit.remove(i);
+    }
+    public void setBlesse(boolean estBlesse) {
         this.estBlesse = estBlesse;
     }
 
-    /**
-     * Setter de l'attribut {@link estCasse} en fonction du nouveau paramètre
-     * @param estCasse le nouvel état du joueur
-     */
-    public void setEstCasse(boolean estCasse) {
+    public void setCasse(boolean estCasse){
         this.estCasse = estCasse;
     }
+    public boolean EstCasse() {
+        return estCasse;
+    }
 
     
 
-- 
GitLab


From c40f1fba1e9df4e6dccfe987136de7fb8aba138d Mon Sep 17 00:00:00 2001
From: Mathieu <mathieu.leroy@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 13:31:20 +0100
Subject: [PATCH 04/23] Ajout javadoc dans Tournoi

---
 src/cmisport/Tournoi.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/cmisport/Tournoi.java b/src/cmisport/Tournoi.java
index a1f30b2..823ae01 100644
--- a/src/cmisport/Tournoi.java
+++ b/src/cmisport/Tournoi.java
@@ -9,6 +9,9 @@ import java.util.Date;
  */
 public class Tournoi extends EvenementSportif {
 
+    /**
+     * Les {@link cmisport.Match} du tournoi.
+     */
     @SuppressWarnings("FieldMayBeFinal")
     private ArrayList<Match> matchs = new ArrayList<>();
 
-- 
GitLab


From 9478a15a71494ca5b1beee0a8f651005e23e6b65 Mon Sep 17 00:00:00 2001
From: Mathieu <mathieu.leroy@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 18:00:20 +0100
Subject: [PATCH 05/23] =?UTF-8?q?Ajout=20des=20m=C3=A9thodes=20toString=20?=
 =?UTF-8?q?dans=20les=20classes=20suivantes=20:=20Match,=20Rencontre,=20Cl?=
 =?UTF-8?q?assement,=20Championnat,=20EvenementSportif,=20SommeCaracterist?=
 =?UTF-8?q?iquesEquipe,=20Equipe,=20Public,=20Tournoi?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Championnat.java                 | 14 +++++++++++++
 src/cmisport/Classement.java                  | 12 +++++++++++
 src/cmisport/Equipe.java                      | 15 +++++++++++++
 src/cmisport/EvenementSportif.java            | 21 +++++++++++++++++++
 src/cmisport/Match.java                       | 12 +++++++++++
 src/cmisport/Public.java                      | 12 +++++++++++
 src/cmisport/SommeCaracteristiquesEquipe.java | 11 ++++++++++
 src/cmisport/Tournoi.java                     | 15 +++++++++++++
 8 files changed, 112 insertions(+)

diff --git a/src/cmisport/Championnat.java b/src/cmisport/Championnat.java
index 35bef04..2f248d3 100644
--- a/src/cmisport/Championnat.java
+++ b/src/cmisport/Championnat.java
@@ -81,4 +81,18 @@ public class Championnat {
     public void addEvenements(EvenementSportif evenement) {
         this.evenements.add(evenement);
     }
+
+    /**
+     * permet d'afficher les attributs de l'{@link cmisport.Championnat}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append("Evenements sportifs : {");
+      for (EvenementSportif e : evenements) {
+        sb.append(e.toString()).append(", ");
+      }
+      sb.append("}");
+      return sb.toString();
+    }
 }
\ No newline at end of file
diff --git a/src/cmisport/Classement.java b/src/cmisport/Classement.java
index c14476f..2c85223 100644
--- a/src/cmisport/Classement.java
+++ b/src/cmisport/Classement.java
@@ -74,4 +74,16 @@ public final class Classement {
     public Equipe getEquipe() {
         return equipe;
     }
+
+    /**
+     * permet d'afficher les attributs de l'{@link cmisport.Classement}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append("Classement : ").append(classement).append(" | ");
+      sb.append("Equipe : ").append(equipe.toString()).append(" | ");
+      // boucle infinie lors de l'affichage de l'évènement sportif (evenement sportif affiche des classements)
+      return sb.toString();
+    }
 }
\ No newline at end of file
diff --git a/src/cmisport/Equipe.java b/src/cmisport/Equipe.java
index 8c68411..6953e6b 100644
--- a/src/cmisport/Equipe.java
+++ b/src/cmisport/Equipe.java
@@ -57,4 +57,19 @@ public class Equipe {
   public void setAthletes(HashSet<Athlete> athletes) {
     this.athletes = athletes;
   }
+
+  /**
+     * permet d'afficher les attributs de l'{@link cmisport.Equipe}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append("Club : ").append(club.getNom()).append(" | ");
+      sb.append(" | Equipe : {");
+      for (Athlete a : athletes) {
+        sb.append(a.toString()).append(", ");
+      }
+      sb.append("}");
+      return sb.toString();
+    }
 }
diff --git a/src/cmisport/EvenementSportif.java b/src/cmisport/EvenementSportif.java
index dcc4320..2fd09d1 100644
--- a/src/cmisport/EvenementSportif.java
+++ b/src/cmisport/EvenementSportif.java
@@ -109,4 +109,25 @@ public abstract class EvenementSportif{
     public ArrayList<Classement> getClassement() {
         return classements;
     }
+
+    /**
+     * permet d'afficher les attributs de l'{@link cmisport.EvenementSportif}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append("Date : ").append(date.toString()).append(" | ");
+      sb.append("Sport : ").append(sport.toString()).append(" | ");
+      sb.append(" | Participants : {");
+      for (Equipe e : participant) {
+        sb.append(e.toString()).append(", ");
+      }
+      sb.append("} | ");
+      sb.append(" | Classements : {");
+      for (Classement c : classements) {
+        sb.append(c.toString()).append(", ");
+      }
+      sb.append("}");
+      return sb.toString();
+    }
 }
diff --git a/src/cmisport/Match.java b/src/cmisport/Match.java
index 2f07e16..0c2ac7e 100644
--- a/src/cmisport/Match.java
+++ b/src/cmisport/Match.java
@@ -122,4 +122,16 @@ public class Match {
     public Sport getSport() {
         return this.sport;
     }
+
+   /**
+   * permet d'afficher les attributs de l'{@link cmisport.Match}
+   */
+  @Override
+  public String toString(){
+    StringBuilder sb = new StringBuilder();
+    sb.append("Public :").append(fans.toString()).append(" | ");
+    sb.append("Première équipe :").append(equipe1).append(" | ");
+    sb.append("Deuxième équipe :").append(equipe2);
+    return sb.toString();
+  }
 }
diff --git a/src/cmisport/Public.java b/src/cmisport/Public.java
index 1ef9b63..f3bf1b5 100644
--- a/src/cmisport/Public.java
+++ b/src/cmisport/Public.java
@@ -77,4 +77,16 @@ public class Public {
   public double getProportionE2() {
     return this.proportionE2;
   }
+
+  /**
+   * permet d'afficher les attributs de l'{@link cmisport.Public}
+   */
+  @Override
+  public String toString(){
+    StringBuilder sb = new StringBuilder();
+    sb.append("Nombre de fans :").append(nbPersonne).append(" | ");
+    sb.append("Proportion pour la première équipe :").append(proportionE1).append(" | ");
+    sb.append("Proportion pour la deuxième équipe :").append(proportionE2);
+    return sb.toString();
+  }
 }
diff --git a/src/cmisport/SommeCaracteristiquesEquipe.java b/src/cmisport/SommeCaracteristiquesEquipe.java
index c4d41a4..fbd994d 100644
--- a/src/cmisport/SommeCaracteristiquesEquipe.java
+++ b/src/cmisport/SommeCaracteristiquesEquipe.java
@@ -43,4 +43,15 @@ public class SommeCaracteristiquesEquipe {
     public double getSommeCaracteristiques() {
         return sommeCaracteristiques;
     }   
+
+    /**
+     * permet d'afficher les attributs de l'{@link cmisport.SommeCaracteristiquesEquipe}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append("Equipe :").append(equipe.toString()).append(" | ");
+      sb.append("Somme pondérée des caractéristiques :").append(sommeCaracteristiques);
+      return sb.toString();
+    }
 }
diff --git a/src/cmisport/Tournoi.java b/src/cmisport/Tournoi.java
index 823ae01..c13c704 100644
--- a/src/cmisport/Tournoi.java
+++ b/src/cmisport/Tournoi.java
@@ -78,4 +78,19 @@ public class Tournoi extends EvenementSportif {
     public ArrayList<Match> getMatchs() {
         return matchs;
     }
+
+    /**
+     * permet d'afficher les attributs de l'{@link cmisport.Tournoi}
+     */
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append(super.toString());
+      sb.append(" | Matchs : {");
+      for (Match m : matchs) {
+        sb.append(m.toString()).append(", ");
+      }
+      sb.append("}");
+      return sb.toString();
+    }
 }
\ No newline at end of file
-- 
GitLab


From fb32d492a31b6d2674c1b0529ccfc699afb545f8 Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Fri, 13 Dec 2024 08:43:58 +0100
Subject: [PATCH 06/23] resolution conflits pour merge

---
 src/cmisport/Humains/Athlete.java | 63 +++++++++++++++++++++++++++++--
 1 file changed, 60 insertions(+), 3 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 9343cb2..cfeed60 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -74,6 +74,7 @@ public class Athlete extends Humain {
       caracteristiquesValeurs.put(Caracteristique.MOTIVATION, 50);
       this.initialiserAthlete(caracteristiquesValeurs);
     }
+<<<<<<< HEAD
 
     /**
      * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
@@ -126,23 +127,45 @@ public class Athlete extends Humain {
      * @return true si l'athlète est blessé, false sinon
      */
     public boolean getEstBlesse() {
+=======
+    
+    /**
+     * permet de savoir si un {@link Athlete} est blesser
+     * @return la valeur de la boolean estBlesse
+     */
+    public boolean EstBlesse() {
+>>>>>>> 6a7f810 (javadoc athlete)
         return estBlesse;
     }
-
+    /**
+     * permet de savoir si un {@link Athlete} est inscrit à un Evenement Sportif
+     * @return la valeur de la Boolean Inscrit
+     */
     public ArrayList<EvenementSportif> Inscrit() {
         return inscrit;
     }
-
+    /**
+     * permet d'inscrire un {@link Athlete} à un Evennement Sportif
+     * @param i l'Evenement Sportif auquel l'{@link Athete} sera Inscrit
+     */
     public void inscrire(EvenementSportif i) {
         this.inscrit.add(i);
     }
-
+    /**
+     * permet de déinscrire un {@link Athlete} d'un Evenement Sportif
+     * @param i l'Evenement Sportif duquelle l'{@link Athlete} sera déinscrit
+     */
     public void deInscrire(EvenementSportif i){
         this.inscrit.remove(i);
     }
+    /**
+     * permet de rendre un {@link Athlete} est Blesser
+     * @param estBlesse l'état de l{@link Athlete}
+     */
     public void setBlesse(boolean estBlesse) {
         this.estBlesse = estBlesse;
     }
+<<<<<<< HEAD
 
     public void setCasse(boolean estCasse){
         this.estCasse = estCasse;
@@ -152,5 +175,39 @@ public class Athlete extends Humain {
     }
 
     
+=======
+    /**
+     * permet de savoir si un {@link Athlete} est Casser
+     */
+    public boolean EstCasse() {
+        return estCasse;
+    }
+    /**
+     * prmet de rendre un {@link Athlete} Casser
+     * @param estCasse l'état de l'{@link Athlete}
+     */
+    public void setCasse(boolean estCasse) {
+        this.estCasse = estCasse;
+    }
+    /**
+     * permet de changer les caraquetéristiques d'un {@link Athlete}
+     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@Athlete}
+     */
+    public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
+        this.caracteristiquesValeurs = caraVals;
+    }
+
+    @Override
+    public double calculerCout() {
+        // TODO Auto-generated method stub
+        return 3.4;
+    }
+
+    @Override
+    public double calculerPrix() {
+        // TODO Auto-generated method stub
+        return 3.4;
+    }
+>>>>>>> 6a7f810 (javadoc athlete)
 
 }
-- 
GitLab


From 94150636ce72995bd0a759c004367ca7d8a4b990 Mon Sep 17 00:00:00 2001
From: Le M <marius@jeaimepasgit.fr>
Date: Thu, 12 Dec 2024 18:18:23 +0100
Subject: [PATCH 07/23] modif java doc

---
 src/cmisport/Humains/Athlete.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index cfeed60..387a622 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -146,7 +146,7 @@ public class Athlete extends Humain {
     }
     /**
      * permet d'inscrire un {@link Athlete} à un Evennement Sportif
-     * @param i l'Evenement Sportif auquel l'{@link Athete} sera Inscrit
+     * @param i l'Evenement Sportif auquel l'{@link Athlete} sera Inscrit
      */
     public void inscrire(EvenementSportif i) {
         this.inscrit.add(i);
@@ -191,7 +191,7 @@ public class Athlete extends Humain {
     }
     /**
      * permet de changer les caraquetéristiques d'un {@link Athlete}
-     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@Athlete}
+     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@link Athlete}
      */
     public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
         this.caracteristiquesValeurs = caraVals;
-- 
GitLab


From 9c2d5921fa477419e60392a21f4a773908741132 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 21:06:44 +0100
Subject: [PATCH 08/23] =?UTF-8?q?feat(Util):=20cr=C3=A9er=20tab=20nom=20+?=
 =?UTF-8?q?=20valeurs=20caract=C3=A9ristique=20d'humains?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Application.java     |   2 +-
 src/cmisport/Caracteristique.java |  16 ++-
 src/cmisport/Humains/Athlete.java |  36 +-----
 src/cmisport/Humains/Humain.java  | 199 ++++++++++++++++--------------
 src/cmisport/Util.java            |  23 ++++
 5 files changed, 146 insertions(+), 130 deletions(-)

diff --git a/src/cmisport/Application.java b/src/cmisport/Application.java
index 7ecb7f6..4dc9c6f 100644
--- a/src/cmisport/Application.java
+++ b/src/cmisport/Application.java
@@ -7,10 +7,10 @@ public class Application{
   public static void main(String[] args) {
     
     System.out.println("OPTIMMMMMMMM <3");
-    Test.testerAthlete();
     Test.testerCoach();
     Test.testerClub();
     Test.testerPersonelMedical();
     Test.testerGaussGenerator();
+    Test.testerAthlete();
     }
 }
diff --git a/src/cmisport/Caracteristique.java b/src/cmisport/Caracteristique.java
index 05ee620..1b54f99 100644
--- a/src/cmisport/Caracteristique.java
+++ b/src/cmisport/Caracteristique.java
@@ -3,6 +3,7 @@ package cmisport;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 /**
@@ -64,8 +65,7 @@ public enum Caracteristique {
      */
     public static Map<Caracteristique, Number> genererMapCaracteristiqueNulles(){
         ArrayList<Caracteristique> caracteristiques = Caracteristique.genererCaracteristiquesVides();
-        Map<Caracteristique, Number> MapCaracteristiqueNulles = new HashMap<>(); 
-
+        Map<Caracteristique, Number> MapCaracteristiqueNulles = new LinkedHashMap<>(); 
         for (Caracteristique c : caracteristiques) {
           MapCaracteristiqueNulles.put(c, 0.0);
         }
@@ -111,4 +111,16 @@ public enum Caracteristique {
   public CaracteristiqueType getType(){
     return this.type;
   }
+
+  /**
+   * Méthode utilitaire renvoyant la liste de tous les noms des caractéristiques.
+   * @return la liste des noms des caractéristiques.
+   */
+  public static String allCaracteristiquesToString(){
+    StringBuilder sb = new StringBuilder();
+    for (Caracteristique cara : Caracteristique.values()){
+      sb.append(String.format("%-12s", cara.name()));
+    }
+    return sb.toString();
+  }
 }
diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 387a622..bcc9666 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -74,7 +74,6 @@ public class Athlete extends Humain {
       caracteristiquesValeurs.put(Caracteristique.MOTIVATION, 50);
       this.initialiserAthlete(caracteristiquesValeurs);
     }
-<<<<<<< HEAD
 
     /**
      * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
@@ -122,19 +121,11 @@ public class Athlete extends Humain {
         return ((double)this.reputation.get() * 50);
     }
 
-    /**
-     * Getter de l'attribut {@link estBlesse}
-     * @return true si l'athlète est blessé, false sinon
-     */
-    public boolean getEstBlesse() {
-=======
-    
     /**
      * permet de savoir si un {@link Athlete} est blesser
      * @return la valeur de la boolean estBlesse
      */
-    public boolean EstBlesse() {
->>>>>>> 6a7f810 (javadoc athlete)
+    public boolean EstBlesse(){
         return estBlesse;
     }
     /**
@@ -165,17 +156,7 @@ public class Athlete extends Humain {
     public void setBlesse(boolean estBlesse) {
         this.estBlesse = estBlesse;
     }
-<<<<<<< HEAD
-
-    public void setCasse(boolean estCasse){
-        this.estCasse = estCasse;
-    }
-    public boolean EstCasse() {
-        return estCasse;
-    }
-
     
-=======
     /**
      * permet de savoir si un {@link Athlete} est Casser
      */
@@ -189,6 +170,7 @@ public class Athlete extends Humain {
     public void setCasse(boolean estCasse) {
         this.estCasse = estCasse;
     }
+
     /**
      * permet de changer les caraquetéristiques d'un {@link Athlete}
      * @param caraVals les nouvelles valeur des caraqueteristique de l'{@link Athlete}
@@ -196,18 +178,4 @@ public class Athlete extends Humain {
     public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
         this.caracteristiquesValeurs = caraVals;
     }
-
-    @Override
-    public double calculerCout() {
-        // TODO Auto-generated method stub
-        return 3.4;
-    }
-
-    @Override
-    public double calculerPrix() {
-        // TODO Auto-generated method stub
-        return 3.4;
-    }
->>>>>>> 6a7f810 (javadoc athlete)
-
 }
diff --git a/src/cmisport/Humains/Humain.java b/src/cmisport/Humains/Humain.java
index f950c1b..a626080 100644
--- a/src/cmisport/Humains/Humain.java
+++ b/src/cmisport/Humains/Humain.java
@@ -33,116 +33,129 @@ public abstract class Humain extends Produit{
    */
    public static final int VALEUR_MAX_CARACTERISTIQUE = 100;
 
-    /**
-     * Constructeur permettant de choiser le {@link #nom}.
-     * @param customName Le nom qui sera donné à l'humain.
-     */
-    public Humain(String customName){
-      int longueur = customName.length();
-      for (int i = 0; i < longueur; i++) {
-        char ch = customName.charAt(i);
-          if(!(ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')){
-            throw new IllegalArgumentException("Le nom contient des caractères non alphabétiques : " + customName); 
-          }
-      }
-      this.nom = customName;
-    }
-
-    /**
-     * Constructeur qui génére automatiquement le {@link #nom} de l'humain.  
-     * @see <a href="https://www.datafaker.net/" target="_blank">Datafaker</a>, l'outil utilisé pour générer les noms.
-     * */
-    public Humain(){
-      Faker faker = new Faker();
-      this.nom = faker.gameOfThrones().character();
-    }
-
-    public String getNom() {
-        return nom;
-    }
-
-    /**
-     * Méthode retournant la valeur de la réputation de l'{@link Humain}
-     */
-    public int getReputation() {
-        return reputation.get();
-    }
-
-    /**
-     * Méthode générant des valeurs aléatoires pour les caracteristiques qui sont des attributs dont la somme vaut le nombre de points passés en paramètres.
-     * Les valeurs aléatoires sont générées selon une distribution gaussienne de déviation 0.3;
-     *
-     * @param nbPoints La somme des valeurs {@link Caracteristique} des {@link #caracteristiquesValeurs} de l'athlete. 
-     * @return Une liste de {@link Caracteristique} avec des valeurs aléatoires pour les attributs et des valeurs nulles pour les états.  
-     */
-    protected Map<Caracteristique, Number> genererAttributsAleatoires(int nbPoints, double deviation) {
-      Map<Caracteristique, Number> caracteristiquesValeursMap = Caracteristique.genererMapCaracteristiqueNulles();
-      ArrayList<Number> valeursAleatoiresAttributs = Util.genererGaussDistribution(Caracteristique.nbAttributs(), deviation, nbPoints, 1, Athlete.VALEUR_MAX_CARACTERISTIQUE);
-
-      int i = 0;
-      for (Caracteristique cara : caracteristiquesValeursMap.keySet()){
-        if (cara.getType() == CaracteristiqueType.ETAT){
-          continue;
+  /**
+   * Constructeur permettant de choiser le {@link #nom}.
+   * @param customName Le nom qui sera donné à l'humain.
+   */
+  public Humain(String customName){
+    int longueur = customName.length();
+    for (int i = 0; i < longueur; i++) {
+      char ch = customName.charAt(i);
+        if(!(ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')){
+          throw new IllegalArgumentException("Le nom contient des caractères non alphabétiques : " + customName); 
         }
-        caracteristiquesValeursMap.put(cara, valeursAleatoiresAttributs.get(i));
-        i++;
+    }
+    this.nom = customName;
+  }
+
+  /**
+   * Constructeur qui génére automatiquement le {@link #nom} de l'humain.  
+   * @see <a href="https://www.datafaker.net/" target="_blank">Datafaker</a>, l'outil utilisé pour générer les noms.
+   * */
+  public Humain(){
+    Faker faker = new Faker();
+    this.nom = faker.gameOfThrones().character();
+  }
+
+  public String getNom() {
+      return nom;
+  }
+
+  /**
+   * Méthode retournant la valeur de la réputation de l'{@link Humain}
+   */
+  public int getReputation() {
+      return reputation.get();
+  }
+
+  /**
+   * Méthode générant des valeurs aléatoires pour les caracteristiques qui sont des attributs dont la somme vaut le nombre de points passés en paramètres.
+   * Les valeurs aléatoires sont générées selon une distribution gaussienne de déviation 0.3;
+   *
+   * @param nbPoints La somme des valeurs {@link Caracteristique} des {@link #caracteristiquesValeurs} de l'athlete. 
+   * @return Une liste de {@link Caracteristique} avec des valeurs aléatoires pour les attributs et des valeurs nulles pour les états.  
+   */
+  protected Map<Caracteristique, Number> genererAttributsAleatoires(int nbPoints, double deviation) {
+    Map<Caracteristique, Number> caracteristiquesValeursMap = Caracteristique.genererMapCaracteristiqueNulles();
+    ArrayList<Number> valeursAleatoiresAttributs = Util.genererGaussDistribution(Caracteristique.nbAttributs(), deviation, nbPoints, 1, Athlete.VALEUR_MAX_CARACTERISTIQUE);
+
+    int i = 0;
+    for (Caracteristique cara : caracteristiquesValeursMap.keySet()){
+      if (cara.getType() == CaracteristiqueType.ETAT){
+        continue;
       }
-
-      return caracteristiquesValeursMap;
+      caracteristiquesValeursMap.put(cara, valeursAleatoiresAttributs.get(i));
+      i++;
     }
 
-   /** 
-     * Méthode permmettant de changer la valeur d'une caractéristique.
-     *
-     * <p>Exemple d'utilisation :</p>
-     * <pre>
-     *  changeCaracteristiqueValue(Caracteristique.ENDURANCE, 23);
-     * </pre>
-     *
-    * @param cara La caractéristique à modifier.
-    * @param val La nouvelle valeur pour la caractéristique
-     */
-    public void changeCaracteristiqueValue (Caracteristique cara, Number val) {
-      if (!this.caracteristiquesValeurs.containsKey(cara)){
-        throw new IllegalStateException("Caracteristique non présente"); //TODO : Refaire cette exception moche
-      }
-      this.caracteristiquesValeurs.put(cara, val);
+    return caracteristiquesValeursMap;
+  }
+
+ /** 
+   * Méthode permmettant de changer la valeur d'une caractéristique.
+   *
+   * <p>Exemple d'utilisation :</p>
+   * <pre>
+   *  changeCaracteristiqueValue(Caracteristique.ENDURANCE, 23);
+   * </pre>
+   *
+  * @param cara La caractéristique à modifier.
+  * @param val La nouvelle valeur pour la caractéristique
+   */
+  public void changeCaracteristiqueValue (Caracteristique cara, Number val) {
+    if (!this.caracteristiquesValeurs.containsKey(cara)){
+      throw new IllegalStateException("Caracteristique non présente"); //TODO : Refaire cette exception moche
     }
+    this.caracteristiquesValeurs.put(cara, val);
+  }
 
-    /**
-     * Méthode calculant, mettant à jour puis retournant la {@link Humain#reputation}  d'un humain en fonction de la valeur de ses différents attributs et non pas de ses états.  .
-     * @return La nouvelle {@link Humain#reputation} de l'humain.  
-     */
-    public Reputation calculerReputation(){
-      Reputation newReputation = new Reputation(0);
-      int acc = 0;
-      for (Map.Entry<Caracteristique, Number> entry : caracteristiquesValeurs.entrySet()) {
-        if (!entry.getKey().estAttribut()) {
-          continue;
-        }
-        acc += entry.getValue().intValue() * 10;
+  /**
+   * Méthode calculant, mettant à jour puis retournant la {@link Humain#reputation}  d'un humain en fonction de la valeur de ses différents attributs et non pas de ses états.  .
+   * @return La nouvelle {@link Humain#reputation} de l'humain.  
+   */
+  public Reputation calculerReputation(){
+    Reputation newReputation = new Reputation(0);
+    int acc = 0;
+    for (Map.Entry<Caracteristique, Number> entry : caracteristiquesValeurs.entrySet()) {
+      if (!entry.getKey().estAttribut()) {
+        continue;
       }
-      newReputation.set(acc);
-      this.reputation = newReputation;
-      return newReputation;
+      acc += entry.getValue().intValue() * 10;
     }
+    newReputation.set(acc);
+    this.reputation = newReputation;
+    return newReputation;
+  }
 
-    public Map<Caracteristique, Number> getCaracteristiques() {
+  public Map<Caracteristique, Number> getCaracteristiques() {
         return caracteristiquesValeurs;
-    }
+  }
 
-    /**
-     * permet d'afficher le nom, la réputation et les caraqueteristique de l'{@link Humain}
-     */
-    @Override
-    public String toString(){
+  /**
+  * permet d'afficher le nom, la réputation et les caraqueteristique de l'{@link Humain}
+  */
+  @Override
+  public String toString(){
       StringBuilder sb = new StringBuilder();
       sb.append("Nom : ").append(this.getNom()).append(" | ");
       sb.append("Réputation : ").append(this.getReputation()).append(" | ");
       sb.append("Caracteristiques : ").append(this.getCaracteristiques().toString());
       return sb.toString();
     }
-   
+
+  /**
+   * Méthode renvoyant un string formaté contenant le nom de l'athlete et les valeurs uniquement de ses caractéristiques.
+   * Le string est formaté de manière a bien s'intégrer à la méthode {@link Util#tabValCaraAthleteToString}.
+   * @return Un string composé du nom de l'athlete puis des valeurs de ses caractéristiques.
+   */
+  public String nomValeursCaraToString(){
+      StringBuilder sb = new StringBuilder();
+      sb.append(String.format("%-23s", this.getNom()));
+      for (Map.Entry<Caracteristique, Number> caraVal : this.caracteristiquesValeurs.entrySet()){
+      sb.append(String.format("%-12d", caraVal.getValue().intValue()));
+      }
+      return sb.toString();
+    }
 }
 
 
diff --git a/src/cmisport/Util.java b/src/cmisport/Util.java
index aa7a2a8..77de231 100644
--- a/src/cmisport/Util.java
+++ b/src/cmisport/Util.java
@@ -4,6 +4,9 @@ import java.util.ArrayList;
 import java.util.ListIterator;
 import java.util.Random;
 
+import cmisport.Humains.Athlete;
+import cmisport.Humains.Humain;
+
 /**
  * Classe stockant des méthodes utilitaires.
  */
@@ -61,4 +64,24 @@ public class Util {
         int randomIndex = new Random().nextInt(valeurs.length);
         return valeurs[randomIndex];
     }
+
+  /**
+   * Méthode utilitaire permettant d'afficher dans un tableau les noms et caractéristiques d'une liste d'humains.
+   * @param humains La liste d'{@link Humain} dont il faut afficher les caractéristiques.
+   * @return Le tableau avec les noms des humains et les valeurs des caractéristiques.
+   */
+  public static String tabValCaraAthleteToString(ArrayList<Humain> humains){
+    StringBuilder sb = new StringBuilder();
+    sb.append(String.format("%-23s", "Nom"));
+    sb.append(Caracteristique.allCaracteristiquesToString());
+    sb.append(String.format("\n"));
+    for (int i = 0; i < Caracteristique.values().length * 14; i++) {
+      sb.append("=");
+    }
+    sb.append("\n");
+    for (Humain athlete : humains){
+      sb.append(athlete.nomValeursCaraToString()).append(String.format("\n"));
+    }
+    return sb.toString();
+  }
 }
-- 
GitLab


From b5d89f5facd76ca1f7bbca0e3650d7b04613f28d Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 21:31:37 +0100
Subject: [PATCH 09/23] =?UTF-8?q?feat(Equipe):=20constructeur=20g=C3=A9n?=
 =?UTF-8?q?=C3=A9rant=20athl=C3=A8tes=20al=C3=A9atoirement?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Equipe.java | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/cmisport/Equipe.java b/src/cmisport/Equipe.java
index 6953e6b..1959450 100644
--- a/src/cmisport/Equipe.java
+++ b/src/cmisport/Equipe.java
@@ -1,4 +1,5 @@
 package cmisport;
+import java.util.ArrayList;
 import java.util.HashSet;
 
 import cmisport.Humains.Athlete;
@@ -28,6 +29,20 @@ public class Equipe {
     athletes = a;
   }
 
+  /**
+   * Constructeur générant une équipe avec des athlètes aux caractéristiques aléatoires.
+   * @param c Le club auquel l'équipe appartient.
+   * @nbAthletes Le nombre d'athlètes à générer pour l'équipe.
+   * @nbPointsEquipe Le nombre total des points de caractéristiques qui sera repartit aléatoirement entre les athlètes.
+   */
+  public Equipe(Club c, int nbAthletes, int nbPointsEquipe){
+    ArrayList<Number> repartitionPoints = Util.genererGaussDistribution(nbAthletes, 0.3, nbPointsEquipe, 1, Athlete.VALEUR_MAX_CARACTERISTIQUE);
+    for (int i = 0; i < nbAthletes; i++) {
+      this.athletes.add(new Athlete(repartitionPoints.get(i).intValue(), 0.3));
+    }
+    this.club = c;
+  }
+
     /**
    * Getter de l'attribut club.
    * @return club le {@link cmisport.Club} de l'equipe. 
-- 
GitLab


From 87d7a8d0b9d31e4dc6bbec227c9a81a857392185 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 22:22:07 +0100
Subject: [PATCH 10/23] refactor(Humains + Club + Equipe): toString

---
 src/cmisport/Application.java           |  9 +++++----
 src/cmisport/Club.java                  | 19 +++++++++++++++++-
 src/cmisport/Equipe.java                |  9 +++------
 src/cmisport/Humains/Athlete.java       |  9 ++++++++-
 src/cmisport/Humains/Coach.java         |  7 +++++++
 src/cmisport/Humains/Humain.java        | 12 +++++++++++-
 src/cmisport/Humains/PersonelSante.java | 16 +++++++++++++++
 src/cmisport/Humains/Role.java          |  2 +-
 src/cmisport/Test.java                  | 26 ++++++++++++++++++++++---
 src/cmisport/Util.java                  |  8 +++++---
 10 files changed, 97 insertions(+), 20 deletions(-)

diff --git a/src/cmisport/Application.java b/src/cmisport/Application.java
index 4dc9c6f..8d1ed5e 100644
--- a/src/cmisport/Application.java
+++ b/src/cmisport/Application.java
@@ -7,10 +7,11 @@ public class Application{
   public static void main(String[] args) {
     
     System.out.println("OPTIMMMMMMMM <3");
-    Test.testerCoach();
+    //Test.testerCoach();
     Test.testerClub();
-    Test.testerPersonelMedical();
-    Test.testerGaussGenerator();
-    Test.testerAthlete();
+    //Test.testerPersonelMedical();
+    //Test.testerGaussGenerator();
+    //Test.testerAthlete();
+    //Test.testerEquipe();
     }
 }
diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index c3d99a8..d52e115 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -7,7 +7,6 @@ import cmisport.Humains.Coach;
 import cmisport.Humains.Humain;
 import cmisport.Humains.PersonelSante;
 
-//TODO Faire le TOSTRING
 /**
  * Représente un club composé d'{@link Humain} et ayant un Local et des revenus.
  */
@@ -110,6 +109,21 @@ public class Club{
       return new Equipe(this, athletes);
     }
 
+    @Override
+    public String toString(){
+      StringBuilder sb = new StringBuilder();
+
+      sb.append("Nom : ").append(this.nom).append("\t ; \t");
+      sb.append("Solde : ").append(this.solde).append("\t ; \t");
+      sb.append("Revenus : ").append(this.revenus).append("\t ; \t");
+      sb.append("Local : ").append(this.local);
+      sb.append(String.format("\n"));
+      sb.append("Tableau des athlètes du club et de leurs caractéristiques :").append("\n");
+      sb.append(Util.tabValCaraAthleteToString(this.membres, true)).append(String.format("\n"));
+
+      return sb.toString();
+    }
+
     //TODO à quoi ça sert? 
     public double augmenterCapacite(int c){
       return 0;
@@ -143,6 +157,9 @@ public class Club{
       return revenus;
     }
 
+    public ArrayList<Humain> getMembres(){
+      return this.membres;
+    }
     public Reputation getReputation() {
       return this.reputation;
     }
diff --git a/src/cmisport/Equipe.java b/src/cmisport/Equipe.java
index 1959450..c05c792 100644
--- a/src/cmisport/Equipe.java
+++ b/src/cmisport/Equipe.java
@@ -79,12 +79,9 @@ public class Equipe {
     @Override
     public String toString(){
       StringBuilder sb = new StringBuilder();
-      sb.append("Club : ").append(club.getNom()).append(" | ");
-      sb.append(" | Equipe : {");
-      for (Athlete a : athletes) {
-        sb.append(a.toString()).append(", ");
-      }
-      sb.append("}");
+      sb.append("Club : ").append(club.getNom()).append("\n");
+      sb.append("Tableau des athlètes et de leurs caractéristiques : \n");
+      sb.append(Util.tabValCaraAthleteToString(this.athletes, false));
       return sb.toString();
     }
 }
diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index bcc9666..13fe371 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -62,7 +62,14 @@ public class Athlete extends Humain {
       this.initialiserAthlete(cara);
     }
 
-    /**
+  /**
+   * {@inheritDoc}
+   */
+  public String getTypeHumain(){
+    return "ATHLETE";
+  }
+
+  /**
      * Constructeur générant un athlète avec un nom aléatoire et des caractéristiques dont la somme des valeurs vaut le nombre de points passés en paramètres.
      *
      * @param nbPoints La somme de toutes les valeurs des {@link #caracteristiquesValeurs} de l'athlete.
diff --git a/src/cmisport/Humains/Coach.java b/src/cmisport/Humains/Coach.java
index 0da771f..b431841 100644
--- a/src/cmisport/Humains/Coach.java
+++ b/src/cmisport/Humains/Coach.java
@@ -57,6 +57,13 @@ public class Coach extends Staff {
     return reputation;
   }
 
+  /**
+   * {@inheritDoc}
+   */
+  public String getTypeHumain(){
+    return "COACH";
+  }
+
   /**
    * Méthode permettant d'entrainer les attributs d'un {@link Athlete} en fonction de ceux du coach.
    * L'athlete passé en paramètre est ensuite ajouté à la liste des cibles.
diff --git a/src/cmisport/Humains/Humain.java b/src/cmisport/Humains/Humain.java
index a626080..bd60944 100644
--- a/src/cmisport/Humains/Humain.java
+++ b/src/cmisport/Humains/Humain.java
@@ -143,13 +143,23 @@ public abstract class Humain extends Produit{
       return sb.toString();
     }
 
+  /**
+   * Méthode renvoyant un string contenant le type de l'humain (Athlete, Coach, Kine, Psy, Medecin).
+   * Chaque sous classe l'impléménte et renvoie le type d'humains qu'elle représente.
+   * @return Le type de l'humain: (Athlete, Coach, Kine, Psy, Medecin)
+   */
+  public abstract String getTypeHumain();
+
   /**
    * Méthode renvoyant un string formaté contenant le nom de l'athlete et les valeurs uniquement de ses caractéristiques.
    * Le string est formaté de manière a bien s'intégrer à la méthode {@link Util#tabValCaraAthleteToString}.
    * @return Un string composé du nom de l'athlete puis des valeurs de ses caractéristiques.
    */
-  public String nomValeursCaraToString(){
+  public String nomValeursCaraToString(boolean afficherRole){
       StringBuilder sb = new StringBuilder();
+      if (afficherRole){
+        sb.append(String.format("%-12s", this.getTypeHumain()));
+      }
       sb.append(String.format("%-23s", this.getNom()));
       for (Map.Entry<Caracteristique, Number> caraVal : this.caracteristiquesValeurs.entrySet()){
       sb.append(String.format("%-12d", caraVal.getValue().intValue()));
diff --git a/src/cmisport/Humains/PersonelSante.java b/src/cmisport/Humains/PersonelSante.java
index f45f1d1..3e38384 100644
--- a/src/cmisport/Humains/PersonelSante.java
+++ b/src/cmisport/Humains/PersonelSante.java
@@ -67,6 +67,22 @@ public class PersonelSante extends Staff {
     return reputation;
   }
 
+  /**
+   * {@inheritDoc}
+   */
+  public String getTypeHumain(){
+    switch (this.role) {
+      case KINE:
+        return "KINE";
+      case MEDECIN:
+        return "MEDECIN";
+      case PSY:
+        return "PSY";
+      default:
+        return "TYPE INCONNU"; //TODO Pourquoi pas faire une exception 
+    }
+  }
+
   /**
    * Modifie la valeur de la {@link Caracteristique} associée au {@link Role} du personel dans l'{@link Athlete} en fonction de la valeur de l'effet du personel.
    * Ajoute ensuite l'athlete à la liste des cibles traitées.
diff --git a/src/cmisport/Humains/Role.java b/src/cmisport/Humains/Role.java
index 20ff47d..6499f12 100644
--- a/src/cmisport/Humains/Role.java
+++ b/src/cmisport/Humains/Role.java
@@ -8,7 +8,7 @@ import cmisport.Caracteristique;
 public enum Role {
   KINE(Caracteristique.FATIGUE),
   PSY(Caracteristique.MOTIVATION),
-  MEDECIN(Caracteristique.MENTAL);
+  MEDECIN(Caracteristique.SANTE);
 
   /**
    * La caractéristique que le role affecte.
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index 045ec96..efb8506 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -14,27 +14,47 @@ public class Test {
       athlete.changeCaracteristiqueValue(Caracteristique.FORCE, 12);
       System.out.println(athlete.toString());
   }
+
   public static void testerCoach(){
     Athlete athlete = new Athlete(300, 0.3);
     Coach coach = new Coach(300, 0.5);
     coach.entrainer(athlete);
     System.out.println(coach);
   }
+
   public static void testerPersonelMedical(){
     Athlete athlete = new Athlete(250, 0.3);
     PersonelSante kine = new PersonelSante(400, 0.5);
     kine.affecterAthlete(athlete);
     System.out.println(kine);
   }
+
   public static void testerGaussGenerator(){
     ArrayList<Number> valeursAleatoires = Util.genererGaussDistribution(Caracteristique.nbAttributs(), 1, 80, 1, 100);
 
     int sum = valeursAleatoires.stream().mapToInt(Number::intValue).sum();
     System.out.println(valeursAleatoires + " Somme = " + sum);
   }
+
   public static void testerClub(){
-    //TODO Vérifier que la génération marche bien mais y'a pas de raison (je n'avais pas le toString)
-    Club club = new Club("FC OPTIM", 1,800,6, 0.5);
-    System.out.println(club.toString());
+    Club club = new Club("FC OPTIM", 1,1200,12, 0.4);
+    System.out.println(club);
+  }
+
+  public static void testerEquipe(){
+    Club club = new Club("FC OPTIM", 1, 800, 5, 0.5);
+    Equipe equipe = new Equipe(club, 6, 4000);
+    System.out.println(equipe);
   }
+//  public void testnom(String arg){
+//
+//    try {
+//      Personne pHumain = new Personne(arg); 
+//      System.out.println("Nom Valide" + arg);
+//      
+//        
+//    } catch (IllegalArgumentException e ) {
+//      System.out.println("Nom invalide car exeption :" + e);
+//    }
+//  }
 }
diff --git a/src/cmisport/Util.java b/src/cmisport/Util.java
index 77de231..59e812c 100644
--- a/src/cmisport/Util.java
+++ b/src/cmisport/Util.java
@@ -1,6 +1,7 @@
 package cmisport;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.ListIterator;
 import java.util.Random;
 
@@ -70,9 +71,10 @@ public class Util {
    * @param humains La liste d'{@link Humain} dont il faut afficher les caractéristiques.
    * @return Le tableau avec les noms des humains et les valeurs des caractéristiques.
    */
-  public static String tabValCaraAthleteToString(ArrayList<Humain> humains){
+  public static String tabValCaraAthleteToString(Collection<? extends Humain> humains, boolean afficherRole){
     StringBuilder sb = new StringBuilder();
-    sb.append(String.format("%-23s", "Nom"));
+    if (afficherRole){sb.append(String.format("%-12s", "ROLE"));}
+    sb.append(String.format("%-23s", "NOM"));
     sb.append(Caracteristique.allCaracteristiquesToString());
     sb.append(String.format("\n"));
     for (int i = 0; i < Caracteristique.values().length * 14; i++) {
@@ -80,7 +82,7 @@ public class Util {
     }
     sb.append("\n");
     for (Humain athlete : humains){
-      sb.append(athlete.nomValeursCaraToString()).append(String.format("\n"));
+      sb.append(athlete.nomValeursCaraToString(afficherRole)).append(String.format("\n"));
     }
     return sb.toString();
   }
-- 
GitLab


From 16877987cb219e35a6905ee432c354490523f65b Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 22:34:06 +0100
Subject: [PATCH 11/23] =?UTF-8?q?feat(Club):=20v=C3=A9rifer=20proportion?=
 =?UTF-8?q?=20d'athletes=20>=203/4=20nbHumains?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Application.java | 10 +++++-----
 src/cmisport/Club.java        | 16 +++++++++++-----
 src/cmisport/Test.java        |  4 ++--
 3 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/cmisport/Application.java b/src/cmisport/Application.java
index 8d1ed5e..fb463e8 100644
--- a/src/cmisport/Application.java
+++ b/src/cmisport/Application.java
@@ -7,11 +7,11 @@ public class Application{
   public static void main(String[] args) {
     
     System.out.println("OPTIMMMMMMMM <3");
-    //Test.testerCoach();
+    Test.testerCoach();
     Test.testerClub();
-    //Test.testerPersonelMedical();
-    //Test.testerGaussGenerator();
-    //Test.testerAthlete();
-    //Test.testerEquipe();
+    Test.testerPersonelMedical();
+    Test.testerGaussGenerator();
+    Test.testerAthlete();
+    Test.testerEquipe();
     }
 }
diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index d52e115..dbd2dcc 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -32,16 +32,22 @@ public class Club{
      * @param deviationHumains Le facteur de déviation pour le nombre de chaque sous role d'humain ({@link Athlete}, {@link Coach} et {@link PersonelSante}) qui seront présents dans le club. 
      */
     //TODO Aussi générer le local.
-    public Club(String nom, double solde, int nbPoints, int nbHumains, double deviationHumains){
+    public Club(String nom, double solde, int nbPoints, int nbHumains){
       this.membres = new ArrayList<>();
       this.nom = nom;
       this.solde = solde;
-      ArrayList<Number> nbTypesHumains = Util.genererGaussDistribution(3, deviationHumains, nbHumains, 0, nbHumains / 2); //Distribue le nbHumains dans 3 élements du tableau de manière aléatoire. Le premier élément du tableu est le nombre d'athlete, le second le nombre de coach et le troisieme le nombre de PersonelSante. 
-      ArrayList<Number> nbPointsHumains = Util.genererGaussDistribution(nbHumains, 0.5, nbPoints, 1, Humain.VALEUR_MAX_CARACTERISTIQUE); //Distribue le nbPoints total de tous les humains de manière aléatoire entre tous les humains.
+      ArrayList<Number> nbTypesHumains = new ArrayList<>();
+      //S'assure que les ahtlètes représentent au moins 2 tiers des humains.
+      //TODO (Peu important) Refactor ce test de proportion là il coute très cher mdrr
+      do {
+        nbTypesHumains = Util.genererGaussDistribution(3, 0.3, nbHumains, 0, nbHumains); //Distribue le nbHumains dans 3 élements du tableau de manière aléatoire. Le premier élément du tableu est le nombre d'athlete, le second le nombre de coach et le troisieme le nombre de PersonelSante. 
+      } while (nbTypesHumains.getFirst().intValue() < nbHumains * 0.66);
+
+      ArrayList<Number> nbPointsHumains = Util.genererGaussDistribution(nbHumains, 0.3, nbPoints, 1, Humain.VALEUR_MAX_CARACTERISTIQUE); //Distribue le nbPoints total de tous les humains de manière aléatoire entre tous les humains.
 
       //Ajoute à la liste des membres les types d'humains en fonction de la répartition des nbTypesHumains et attribue à chaque humain les points qui lui ont été distribué dans nbPointsHumains.
       int indexHumain = 0;
-      //TODO Surement moyen de faire une seule boucle générique.
+      //TODO (Peu important) Surement moyen de faire une seule boucle générique.
       for (int i = 0; i < nbTypesHumains.get(0).intValue(); i++) {
         this.membres.add(new Athlete(nbPointsHumains.get(indexHumain).intValue(), 0.3));
         indexHumain++;
@@ -118,7 +124,7 @@ public class Club{
       sb.append("Revenus : ").append(this.revenus).append("\t ; \t");
       sb.append("Local : ").append(this.local);
       sb.append(String.format("\n"));
-      sb.append("Tableau des athlètes du club et de leurs caractéristiques :").append("\n");
+      sb.append("Tableau des humains du club et de leurs caractéristiques :").append("\n");
       sb.append(Util.tabValCaraAthleteToString(this.membres, true)).append(String.format("\n"));
 
       return sb.toString();
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index efb8506..302e149 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -37,12 +37,12 @@ public class Test {
   }
 
   public static void testerClub(){
-    Club club = new Club("FC OPTIM", 1,1200,12, 0.4);
+    Club club = new Club("FC OPTIM", 1,1200,12);
     System.out.println(club);
   }
 
   public static void testerEquipe(){
-    Club club = new Club("FC OPTIM", 1, 800, 5, 0.5);
+    Club club = new Club("FC OPTIM", 1, 800, 5);
     Equipe equipe = new Equipe(club, 6, 4000);
     System.out.println(equipe);
   }
-- 
GitLab


From f09b35b2f02fc267b7710a3298c73a631eab80d9 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 22:39:58 +0100
Subject: [PATCH 12/23] modif facteur PersonelSante

---
 src/cmisport/Humains/PersonelSante.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/cmisport/Humains/PersonelSante.java b/src/cmisport/Humains/PersonelSante.java
index 3e38384..b2e63cc 100644
--- a/src/cmisport/Humains/PersonelSante.java
+++ b/src/cmisport/Humains/PersonelSante.java
@@ -18,7 +18,7 @@ public class PersonelSante extends Staff {
   /**
    * Le facteur de l'éffet utilisé pour caluler la réputation et l'effet en fonction des points.
    */
-  private final double facteurEffet = 50;
+  private final double facteurEffet = 25;
 
   //TODO Trouver des meilleurs coeffs en faisant des tests
   /**
-- 
GitLab


From e8ca466da8fcf6e128cfba096c1a0d8be9c94124 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 22:52:14 +0100
Subject: [PATCH 13/23] docs(Club + Equipe) : fix Javadoc

---
 src/cmisport/Club.java   | 1 -
 src/cmisport/Equipe.java | 4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index dbd2dcc..6d5085c 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -29,7 +29,6 @@ public class Club{
      * @param solde La solde initiale du club
      * @param nbPoints Le nombre total de points qui sera répartit entre les différents humains.
      * @param nbHumains Le nombre total d'{@link Humain} qui seront générés pour le club.
-     * @param deviationHumains Le facteur de déviation pour le nombre de chaque sous role d'humain ({@link Athlete}, {@link Coach} et {@link PersonelSante}) qui seront présents dans le club. 
      */
     //TODO Aussi générer le local.
     public Club(String nom, double solde, int nbPoints, int nbHumains){
diff --git a/src/cmisport/Equipe.java b/src/cmisport/Equipe.java
index c05c792..503e124 100644
--- a/src/cmisport/Equipe.java
+++ b/src/cmisport/Equipe.java
@@ -32,8 +32,8 @@ public class Equipe {
   /**
    * Constructeur générant une équipe avec des athlètes aux caractéristiques aléatoires.
    * @param c Le club auquel l'équipe appartient.
-   * @nbAthletes Le nombre d'athlètes à générer pour l'équipe.
-   * @nbPointsEquipe Le nombre total des points de caractéristiques qui sera repartit aléatoirement entre les athlètes.
+   * @param nbAthletes Le nombre d'athlètes à générer pour l'équipe.
+   * @param nbPointsEquipe Le nombre total des points de caractéristiques qui sera repartit aléatoirement entre les athlètes.
    */
   public Equipe(Club c, int nbAthletes, int nbPointsEquipe){
     ArrayList<Number> repartitionPoints = Util.genererGaussDistribution(nbAthletes, 0.3, nbPointsEquipe, 1, Athlete.VALEUR_MAX_CARACTERISTIQUE);
-- 
GitLab


From 039c913bb4d3c6f8294ec20c2dcee1c532bae6ef Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 18:06:08 +0100
Subject: [PATCH 14/23] =?UTF-8?q?Impl=C3=A9mentation=20des=20m=C3=A9thodes?=
 =?UTF-8?q?=20calculerCout=20et=20calculerPrix.=20Javadoc=20dans=20athlete?=
 =?UTF-8?q?.=20Suppresion=20de=20Personne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Humains/Athlete.java | 127 +++++++++++++++++-------------
 1 file changed, 72 insertions(+), 55 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 13fe371..f6e9395 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -62,14 +62,15 @@ public class Athlete extends Humain {
       this.initialiserAthlete(cara);
     }
 
-  /**
-   * {@inheritDoc}
-   */
-  public String getTypeHumain(){
-    return "ATHLETE";
-  }
-
-  /**
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String getTypeHumain(){
+      return "ATHLETE";
+    }
+
+    /**
      * Constructeur générant un athlète avec un nom aléatoire et des caractéristiques dont la somme des valeurs vaut le nombre de points passés en paramètres.
      *
      * @param nbPoints La somme de toutes les valeurs des {@link #caracteristiquesValeurs} de l'athlete.
@@ -81,53 +82,7 @@ public class Athlete extends Humain {
       caracteristiquesValeurs.put(Caracteristique.MOTIVATION, 50);
       this.initialiserAthlete(caracteristiquesValeurs);
     }
-
-    /**
-     * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
-     */
-    public void seBlesse(){
-        double fatigue = this.caracteristiquesValeurs.get(Caracteristique.FATIGUE).doubleValue();
-        if (fatigue >= 20){
-            double randomValue = (int)(Math.random() * 10);
-            double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
-            if (randomValue == randomValueFatigue){
-                this.setBlesse(true); 
-            }
-        }
-    }
-
-    /**
-     * Méthode "cassant" l'athlète moralement si sa motivation est trop basse, avec une certaine probabilité dépendante de la motivation de l'athlète.
-     */
-    public void seCasse(){
-        double motivation = this.caracteristiquesValeurs.get(Caracteristique.MOTIVATION).doubleValue();
-        if (motivation <= 20){
-            double randomValue = (int)(Math.random() * 10);
-            double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
-            if (randomValue == randomValueMotivation){
-                this.setCasse(true); 
-            }
-        }     
-    }
-
-    /**
-     * Overriding de la méthode abstraite calculerCout() de la classe Produit retournant le coût que le club doit dépenser chaque mois pour cet athlète.
-     * @return le coût de l'athlète en fonction de sa réputation
-     */
-    @Override
-    public double calculerCout() {
-        return ((double)this.reputation.get() * 10);
-    }
-
-    /**
-     * Overriding de la méthode abstraite calculerPrix() de la classe Produit retournant le prix que le club doit dépenser pour acheter cet athlète.
-     * @return le prix de l'athlète en fonction de sa réputation
-     */
-    @Override
-    public double calculerPrix() {
-        return ((double)this.reputation.get() * 50);
-    }
-
+    
     /**
      * permet de savoir si un {@link Athlete} est blesser
      * @return la valeur de la boolean estBlesse
@@ -185,4 +140,66 @@ public class Athlete extends Humain {
     public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
         this.caracteristiquesValeurs = caraVals;
     }
+
+    /**
+     * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
+     */
+    public void seBlesse(){
+        double fatigue = this.caracteristiquesValeurs.get(Caracteristique.FATIGUE).doubleValue();
+        if (fatigue >= 20){
+            double randomValue = (int)(Math.random() * 10);
+            double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
+            if (randomValue == randomValueFatigue){
+                this.setBlesse(true); 
+            }
+        }
+    }
+
+    /**
+     * Méthode "cassant" l'athlète moralement si sa motivation est trop basse, avec une certaine probabilité dépendante de la motivation de l'athlète.
+     */
+    public void seCasse(){
+        double motivation = this.caracteristiquesValeurs.get(Caracteristique.MOTIVATION).doubleValue();
+        if (motivation <= 20){
+            double randomValue = (int)(Math.random() * 10);
+            double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
+            if (randomValue == randomValueMotivation){
+                this.setCasse(true); 
+            }
+        }     
+    }
+
+    /**
+     * Overriding de la méthode abstraite calculerCout() de la classe Produit retournant le coût que le club doit dépenser chaque mois pour cet athlète.
+     * @return le coût de l'athlète en fonction de sa réputation
+     */
+    @Override
+    public double calculerCout() {
+        return ((double)this.reputation.get() * 10);
+    }
+
+    /**
+     * Overriding de la méthode abstraite calculerPrix() de la classe Produit retournant le prix que le club doit dépenser pour acheter cet athlète.
+     * @return le prix de l'athlète en fonction de sa réputation
+     */
+    @Override
+    public double calculerPrix() {
+        return ((double)this.reputation.get() * 50);
+    }
+
+    /**
+     * Getter de l'attribut {@link estBlesse}
+     * @return true si l'athlète est blessé, false sinon
+     */
+    public boolean getEstBlesse() {
+        return estBlesse;
+    }
+
+    /**
+     * Getter de l'attribut {@link estCasse}
+     * @return true si l'athlète est cassé, false sinon
+     */
+    public boolean getEstCasse() {
+        return estCasse;
+    }
 }
-- 
GitLab


From c3cee592f111f473d35687e588b181c7b886d101 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Fri, 13 Dec 2024 09:03:26 +0100
Subject: [PATCH 15/23] =?UTF-8?q?feat(CLub):=20constructeur=20g=C3=A9n?=
 =?UTF-8?q?=C3=A9rant=20nom?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Club.java | 11 +++++++++++
 src/cmisport/Test.java |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index 6d5085c..fb499b1 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -2,6 +2,7 @@ package cmisport;
 import java.util.ArrayList;
 import java.util.HashSet;
 
+import net.datafaker.*;
 import cmisport.Humains.Athlete;
 import cmisport.Humains.Coach;
 import cmisport.Humains.Humain;
@@ -63,6 +64,16 @@ public class Club{
     }
 
 
+    /**
+     * Constructeur générant le nom automatiquement puis transmet les paramètres à {@link #Club(String, double, int, int)} 
+     * @param solde La solde initiale du club
+     * @param nbPoints Le nombre total de points qui sera répartit entre les différents humains.
+     * @param nbHumains Le nombre total d'{@link Humain} qui seront générés pour le club.
+     */
+    public Club(double solde, int nbPoints, int nbHumains){
+      this(new Faker().team().name(), solde, nbPoints, nbHumains);
+    }
+
     /**
      * Méthode permettant d'acheter un {@link Humain} ou un {@link Local} 
      * Génère une exception {@link SoldeInsuffisant} si le {@link solde} du {@link Club} est insuffisant.
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index 302e149..4c7874b 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -37,7 +37,7 @@ public class Test {
   }
 
   public static void testerClub(){
-    Club club = new Club("FC OPTIM", 1,1200,12);
+    Club club = new Club( 1,1200,12);
     System.out.println(club);
   }
 
-- 
GitLab


From 924b233948366e7ff1addb247dac41a5f518991d Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 21:06:44 +0100
Subject: [PATCH 16/23] =?UTF-8?q?feat(Util):=20cr=C3=A9er=20tab=20nom=20+?=
 =?UTF-8?q?=20valeurs=20caract=C3=A9ristique=20d'humains?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Application.java |  3 +++
 src/cmisport/Test.java        |  7 +++++++
 src/cmisport/Util.java        | 10 ++++++++++
 3 files changed, 20 insertions(+)

diff --git a/src/cmisport/Application.java b/src/cmisport/Application.java
index fb463e8..237d5b5 100644
--- a/src/cmisport/Application.java
+++ b/src/cmisport/Application.java
@@ -12,6 +12,9 @@ public class Application{
     Test.testerPersonelMedical();
     Test.testerGaussGenerator();
     Test.testerAthlete();
+<<<<<<< HEAD
     Test.testerEquipe();
+=======
+>>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     }
 }
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index 4c7874b..eb66f74 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -37,8 +37,15 @@ public class Test {
   }
 
   public static void testerClub(){
+<<<<<<< HEAD
     Club club = new Club( 1,1200,12);
     System.out.println(club);
+=======
+    //TODO Vérifier que la génération marche bien mais y'a pas de raison (je n'avais pas le toString)
+    Club club = new Club("FC OPTIM", 1,800,5, 0.5);
+    System.out.println(Util.tabValCaraAthleteToString(club.getMembres()));
+    //System.out.println(club);
+>>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
   }
 
   public static void testerEquipe(){
diff --git a/src/cmisport/Util.java b/src/cmisport/Util.java
index 59e812c..76e98c6 100644
--- a/src/cmisport/Util.java
+++ b/src/cmisport/Util.java
@@ -71,10 +71,16 @@ public class Util {
    * @param humains La liste d'{@link Humain} dont il faut afficher les caractéristiques.
    * @return Le tableau avec les noms des humains et les valeurs des caractéristiques.
    */
+<<<<<<< HEAD
   public static String tabValCaraAthleteToString(Collection<? extends Humain> humains, boolean afficherRole){
     StringBuilder sb = new StringBuilder();
     if (afficherRole){sb.append(String.format("%-12s", "ROLE"));}
     sb.append(String.format("%-23s", "NOM"));
+=======
+  public static String tabValCaraAthleteToString(ArrayList<Humain> humains){
+    StringBuilder sb = new StringBuilder();
+    sb.append(String.format("%-23s", "Nom"));
+>>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     sb.append(Caracteristique.allCaracteristiquesToString());
     sb.append(String.format("\n"));
     for (int i = 0; i < Caracteristique.values().length * 14; i++) {
@@ -82,7 +88,11 @@ public class Util {
     }
     sb.append("\n");
     for (Humain athlete : humains){
+<<<<<<< HEAD
       sb.append(athlete.nomValeursCaraToString(afficherRole)).append(String.format("\n"));
+=======
+      sb.append(athlete.nomValeursCaraToString()).append(String.format("\n"));
+>>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     }
     return sb.toString();
   }
-- 
GitLab


From c6e1b69fa0ce00fb590fe82641a89ac6378450cd Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 21:31:37 +0100
Subject: [PATCH 17/23] =?UTF-8?q?feat(Equipe):=20constructeur=20g=C3=A9n?=
 =?UTF-8?q?=C3=A9rant=20athl=C3=A8tes=20al=C3=A9atoirement?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Util.java | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/src/cmisport/Util.java b/src/cmisport/Util.java
index 76e98c6..8c37fb2 100644
--- a/src/cmisport/Util.java
+++ b/src/cmisport/Util.java
@@ -5,7 +5,6 @@ import java.util.Collection;
 import java.util.ListIterator;
 import java.util.Random;
 
-import cmisport.Humains.Athlete;
 import cmisport.Humains.Humain;
 
 /**
@@ -71,16 +70,10 @@ public class Util {
    * @param humains La liste d'{@link Humain} dont il faut afficher les caractéristiques.
    * @return Le tableau avec les noms des humains et les valeurs des caractéristiques.
    */
-<<<<<<< HEAD
   public static String tabValCaraAthleteToString(Collection<? extends Humain> humains, boolean afficherRole){
     StringBuilder sb = new StringBuilder();
     if (afficherRole){sb.append(String.format("%-12s", "ROLE"));}
     sb.append(String.format("%-23s", "NOM"));
-=======
-  public static String tabValCaraAthleteToString(ArrayList<Humain> humains){
-    StringBuilder sb = new StringBuilder();
-    sb.append(String.format("%-23s", "Nom"));
->>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     sb.append(Caracteristique.allCaracteristiquesToString());
     sb.append(String.format("\n"));
     for (int i = 0; i < Caracteristique.values().length * 14; i++) {
@@ -88,11 +81,7 @@ public class Util {
     }
     sb.append("\n");
     for (Humain athlete : humains){
-<<<<<<< HEAD
       sb.append(athlete.nomValeursCaraToString(afficherRole)).append(String.format("\n"));
-=======
-      sb.append(athlete.nomValeursCaraToString()).append(String.format("\n"));
->>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     }
     return sb.toString();
   }
-- 
GitLab


From c6e6d070b19bcd4822e25d0ecae06ee6db2c18ba Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 22:22:07 +0100
Subject: [PATCH 18/23] refactor(Humains + Club + Equipe): toString

---
 src/cmisport/Application.java |  5 +----
 src/cmisport/Club.java        |  5 +++--
 src/cmisport/Test.java        | 14 ++++++--------
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/cmisport/Application.java b/src/cmisport/Application.java
index 237d5b5..58b14a0 100644
--- a/src/cmisport/Application.java
+++ b/src/cmisport/Application.java
@@ -7,14 +7,11 @@ public class Application{
   public static void main(String[] args) {
     
     System.out.println("OPTIMMMMMMMM <3");
-    Test.testerCoach();
+    //Test.testerCoach();
     Test.testerClub();
     Test.testerPersonelMedical();
     Test.testerGaussGenerator();
     Test.testerAthlete();
-<<<<<<< HEAD
     Test.testerEquipe();
-=======
->>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
     }
 }
diff --git a/src/cmisport/Club.java b/src/cmisport/Club.java
index fb499b1..2832219 100644
--- a/src/cmisport/Club.java
+++ b/src/cmisport/Club.java
@@ -2,11 +2,11 @@ package cmisport;
 import java.util.ArrayList;
 import java.util.HashSet;
 
-import net.datafaker.*;
 import cmisport.Humains.Athlete;
 import cmisport.Humains.Coach;
 import cmisport.Humains.Humain;
 import cmisport.Humains.PersonelSante;
+import net.datafaker.Faker;
 
 /**
  * Représente un club composé d'{@link Humain} et ayant un Local et des revenus.
@@ -134,7 +134,7 @@ public class Club{
       sb.append("Revenus : ").append(this.revenus).append("\t ; \t");
       sb.append("Local : ").append(this.local);
       sb.append(String.format("\n"));
-      sb.append("Tableau des humains du club et de leurs caractéristiques :").append("\n");
+      sb.append("Tableau des athlètes du club et de leurs caractéristiques :").append("\n");
       sb.append(Util.tabValCaraAthleteToString(this.membres, true)).append(String.format("\n"));
 
       return sb.toString();
@@ -176,6 +176,7 @@ public class Club{
     public ArrayList<Humain> getMembres(){
       return this.membres;
     }
+    
     public Reputation getReputation() {
       return this.reputation;
     }
diff --git a/src/cmisport/Test.java b/src/cmisport/Test.java
index eb66f74..751c095 100644
--- a/src/cmisport/Test.java
+++ b/src/cmisport/Test.java
@@ -15,6 +15,7 @@ public class Test {
       System.out.println(athlete.toString());
   }
 
+
   public static void testerCoach(){
     Athlete athlete = new Athlete(300, 0.3);
     Coach coach = new Coach(300, 0.5);
@@ -22,6 +23,7 @@ public class Test {
     System.out.println(coach);
   }
 
+
   public static void testerPersonelMedical(){
     Athlete athlete = new Athlete(250, 0.3);
     PersonelSante kine = new PersonelSante(400, 0.5);
@@ -29,6 +31,7 @@ public class Test {
     System.out.println(kine);
   }
 
+
   public static void testerGaussGenerator(){
     ArrayList<Number> valeursAleatoires = Util.genererGaussDistribution(Caracteristique.nbAttributs(), 1, 80, 1, 100);
 
@@ -36,16 +39,10 @@ public class Test {
     System.out.println(valeursAleatoires + " Somme = " + sum);
   }
 
+
   public static void testerClub(){
-<<<<<<< HEAD
-    Club club = new Club( 1,1200,12);
+    Club club = new Club("FC OPTIM", 1,1200,12);
     System.out.println(club);
-=======
-    //TODO Vérifier que la génération marche bien mais y'a pas de raison (je n'avais pas le toString)
-    Club club = new Club("FC OPTIM", 1,800,5, 0.5);
-    System.out.println(Util.tabValCaraAthleteToString(club.getMembres()));
-    //System.out.println(club);
->>>>>>> 90b8621 (feat(Util): créer tab nom + valeurs caractéristique d'humains)
   }
 
   public static void testerEquipe(){
@@ -55,6 +52,7 @@ public class Test {
   }
 //  public void testnom(String arg){
 //
+//
 //    try {
 //      Personne pHumain = new Personne(arg); 
 //      System.out.println("Nom Valide" + arg);
-- 
GitLab


From a1acd3734a90d6298b4ef6b70243234d6d59f286 Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 18:06:08 +0100
Subject: [PATCH 19/23] =?UTF-8?q?Impl=C3=A9mentation=20des=20m=C3=A9thodes?=
 =?UTF-8?q?=20calculerCout=20et=20calculerPrix.=20Javadoc=20dans=20athlete?=
 =?UTF-8?q?.=20Suppresion=20de=20Personne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Humains/Athlete.java | 91 +++++++++----------------------
 1 file changed, 27 insertions(+), 64 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index f6e9395..45761be 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -1,10 +1,8 @@
 package cmisport.Humains;
 
-import java.util.ArrayList;
 import java.util.Map;
 
 import cmisport.Caracteristique;
-import cmisport.EvenementSportif;
 
 public class Athlete extends Humain {
     /**
@@ -18,9 +16,9 @@ public class Athlete extends Humain {
     private boolean estCasse;
 
     /**
-     * Cet attribut indique si l'athlète est inscrit à un tournoi. Si c'est le cas, il ne peut l'être à un autre.
+     * Cet attribut indique si l'athlète est inscrit à un tournoi.
      */
-   private ArrayList<EvenementSportif> inscrit = new ArrayList<>();
+    private boolean estInscrit;
    
 
     /**
@@ -35,6 +33,7 @@ public class Athlete extends Humain {
       this.calculerReputation();
     }
 
+
     /**
      * Constructeur effectuant les actions suivantes : 
      * <p><ul>
@@ -50,6 +49,8 @@ public class Athlete extends Humain {
         this.initialiserAthlete(cara);
         this.cout = calculerCout();
         this.prix = calculerPrix();
+        this.cout = calculerCout();
+        this.prix = calculerPrix();
     }
 
     /**
@@ -82,64 +83,6 @@ public class Athlete extends Humain {
       caracteristiquesValeurs.put(Caracteristique.MOTIVATION, 50);
       this.initialiserAthlete(caracteristiquesValeurs);
     }
-    
-    /**
-     * permet de savoir si un {@link Athlete} est blesser
-     * @return la valeur de la boolean estBlesse
-     */
-    public boolean EstBlesse(){
-        return estBlesse;
-    }
-    /**
-     * permet de savoir si un {@link Athlete} est inscrit à un Evenement Sportif
-     * @return la valeur de la Boolean Inscrit
-     */
-    public ArrayList<EvenementSportif> Inscrit() {
-        return inscrit;
-    }
-    /**
-     * permet d'inscrire un {@link Athlete} à un Evennement Sportif
-     * @param i l'Evenement Sportif auquel l'{@link Athlete} sera Inscrit
-     */
-    public void inscrire(EvenementSportif i) {
-        this.inscrit.add(i);
-    }
-    /**
-     * permet de déinscrire un {@link Athlete} d'un Evenement Sportif
-     * @param i l'Evenement Sportif duquelle l'{@link Athlete} sera déinscrit
-     */
-    public void deInscrire(EvenementSportif i){
-        this.inscrit.remove(i);
-    }
-    /**
-     * permet de rendre un {@link Athlete} est Blesser
-     * @param estBlesse l'état de l{@link Athlete}
-     */
-    public void setBlesse(boolean estBlesse) {
-        this.estBlesse = estBlesse;
-    }
-    
-    /**
-     * permet de savoir si un {@link Athlete} est Casser
-     */
-    public boolean EstCasse() {
-        return estCasse;
-    }
-    /**
-     * prmet de rendre un {@link Athlete} Casser
-     * @param estCasse l'état de l'{@link Athlete}
-     */
-    public void setCasse(boolean estCasse) {
-        this.estCasse = estCasse;
-    }
-
-    /**
-     * permet de changer les caraquetéristiques d'un {@link Athlete}
-     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@link Athlete}
-     */
-    public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
-        this.caracteristiquesValeurs = caraVals;
-    }
 
     /**
      * Méthode blessant le joueur si sa fatigue est trop élevée, avec une certaine probabilité dépendante de la fatigue de l'athlète.
@@ -150,7 +93,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
             if (randomValue == randomValueFatigue){
-                this.setBlesse(true); 
+                this.setEstBlesse(true); 
             }
         }
     }
@@ -164,7 +107,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
             if (randomValue == randomValueMotivation){
-                this.setCasse(true); 
+                this.setEstCasse(true); 
             }
         }     
     }
@@ -202,4 +145,24 @@ public class Athlete extends Humain {
     public boolean getEstCasse() {
         return estCasse;
     }
+
+    /**
+     * Setter de l'attribut {@link estBlesse} en fonction du nouveau paramètre
+     * @param estBlesse le nouvel état du joueur
+     */
+    public void setEstBlesse(boolean estBlesse) {
+        this.estBlesse = estBlesse;
+    }
+
+
+    /**
+     * Setter de l'attribut {@link estCasse} en fonction du nouveau paramètre
+     * @param estCasse le nouvel état du joueur
+     */
+    public void setEstCasse(boolean estCasse) {
+        this.estCasse = estCasse;
+    }
+
+    
+
 }
-- 
GitLab


From 9116f8ab97b74cd1ef4197780db636aaaf8b8d8f Mon Sep 17 00:00:00 2001
From: Le M <marius@jeaimepasgit.fr>
Date: Thu, 12 Dec 2024 17:44:06 +0100
Subject: [PATCH 20/23] Attribut inscrit dans Athlete

---
 src/cmisport/Humains/Athlete.java | 41 +++++++++++++++----------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 45761be..88eb74a 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -1,8 +1,10 @@
 package cmisport.Humains;
 
+import java.util.ArrayList;
 import java.util.Map;
 
 import cmisport.Caracteristique;
+import cmisport.EvenementSportif;
 
 public class Athlete extends Humain {
     /**
@@ -16,9 +18,9 @@ public class Athlete extends Humain {
     private boolean estCasse;
 
     /**
-     * Cet attribut indique si l'athlète est inscrit à un tournoi.
+     * Cet attribut indique si l'athlète est inscrit à un tournoi. Si c'est le cas, il ne peut l'être à un autre.
      */
-    private boolean estInscrit;
+   private ArrayList<EvenementSportif> inscrit = new ArrayList<>();
    
 
     /**
@@ -93,7 +95,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueFatigue = (int)((Math.random() + fatigue/100 ) * 10);
             if (randomValue == randomValueFatigue){
-                this.setEstBlesse(true); 
+                this.setBlesse(true); 
             }
         }
     }
@@ -107,7 +109,7 @@ public class Athlete extends Humain {
             double randomValue = (int)(Math.random() * 10);
             double randomValueMotivation = (int)((Math.random() + motivation/100 ) * 10);
             if (randomValue == randomValueMotivation){
-                this.setEstCasse(true); 
+                this.setCasse(true); 
             }
         }     
     }
@@ -138,30 +140,27 @@ public class Athlete extends Humain {
         return estBlesse;
     }
 
-    /**
-     * Getter de l'attribut {@link estCasse}
-     * @return true si l'athlète est cassé, false sinon
-     */
-    public boolean getEstCasse() {
-        return estCasse;
+    public ArrayList<EvenementSportif> Inscrit() {
+        return inscrit;
     }
 
-    /**
-     * Setter de l'attribut {@link estBlesse} en fonction du nouveau paramètre
-     * @param estBlesse le nouvel état du joueur
-     */
-    public void setEstBlesse(boolean estBlesse) {
-        this.estBlesse = estBlesse;
+    public void inscrire(EvenementSportif i) {
+        this.inscrit.add(i);
     }
 
+    public void deInscrire(EvenementSportif i){
+        this.inscrit.remove(i);
+    }
+    public void setBlesse(boolean estBlesse) {
+        this.estBlesse = estBlesse;
+    }
 
-    /**
-     * Setter de l'attribut {@link estCasse} en fonction du nouveau paramètre
-     * @param estCasse le nouvel état du joueur
-     */
-    public void setEstCasse(boolean estCasse) {
+    public void setCasse(boolean estCasse){
         this.estCasse = estCasse;
     }
+    public boolean EstCasse() {
+        return estCasse;
+    }
 
     
 
-- 
GitLab


From 619e30830bcb6d656dcc22a9157ee36be51b5bb7 Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Thu, 12 Dec 2024 21:06:44 +0100
Subject: [PATCH 21/23] =?UTF-8?q?feat(Util):=20cr=C3=A9er=20tab=20nom=20+?=
 =?UTF-8?q?=20valeurs=20caract=C3=A9ristique=20d'humains?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Humains/Athlete.java | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 88eb74a..0f76a9d 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -154,14 +154,26 @@ public class Athlete extends Humain {
     public void setBlesse(boolean estBlesse) {
         this.estBlesse = estBlesse;
     }
-
-    public void setCasse(boolean estCasse){
-        this.estCasse = estCasse;
-    }
+    
+    /**
+     * permet de savoir si un {@link Athlete} est Casser
+     */
     public boolean EstCasse() {
         return estCasse;
     }
+    /**
+     * prmet de rendre un {@link Athlete} Casser
+     * @param estCasse l'état de l'{@link Athlete}
+     */
+    public void setCasse(boolean estCasse) {
+        this.estCasse = estCasse;
+    }
 
-    
-
+    /**
+     * permet de changer les caraquetéristiques d'un {@link Athlete}
+     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@Athlete}
+     */
+    public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
+        this.caracteristiquesValeurs = caraVals;
+    }
 }
-- 
GitLab


From b4cd634db3c7cfd14b23b6145f6674b4a2f3da94 Mon Sep 17 00:00:00 2001
From: niniss <felix.gottschalk@etu.univ-nantes.fr>
Date: Fri, 13 Dec 2024 09:18:20 +0100
Subject: [PATCH 22/23] here we go again

---
 src/cmisport/Humains/Athlete.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index 0f76a9d..177c50c 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -171,7 +171,7 @@ public class Athlete extends Humain {
 
     /**
      * permet de changer les caraquetéristiques d'un {@link Athlete}
-     * @param caraVals les nouvelles valeur des caraqueteristique de l'{@Athlete}
+     * @param caraVals les nouvelles valeur des caraqueteristique de l'athlète.
      */
     public void setCaracteristiques(Map<Caracteristique, Number> caraVals) {
         this.caracteristiquesValeurs = caraVals;
-- 
GitLab


From a8e214797fd2638d106650fa88fdc407c5e134dc Mon Sep 17 00:00:00 2001
From: Guillaume LEFEVRE-- CRIME <guillaume.lefevre---crime@etu.univ-nantes.fr>
Date: Fri, 13 Dec 2024 09:47:09 +0100
Subject: [PATCH 23/23] =?UTF-8?q?fix(Athlete):=20supprimer=20double=20d?=
 =?UTF-8?q?=C3=A9claration?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/cmisport/Humains/Athlete.java | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/cmisport/Humains/Athlete.java b/src/cmisport/Humains/Athlete.java
index ddd12ff..68d6f83 100644
--- a/src/cmisport/Humains/Athlete.java
+++ b/src/cmisport/Humains/Athlete.java
@@ -148,9 +148,6 @@ public class Athlete extends Humain {
         this.inscrit.add(i);
     }
 
-    public void deInscrire(EvenementSportif i){
-        this.inscrit.remove(i);
-    }
     /**
      * permet de déinscrire un {@link Athlete} d'un Evenement Sportif
      * @param i l'Evenement Sportif duquelle l'{@link Athlete} sera déinscrit
-- 
GitLab