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