Skip to content

Commit 6cc7590

Browse files
authored
Merge branch 'main' into final_changes
2 parents b8e1b64 + a53f559 commit 6cc7590

24 files changed

+695
-85
lines changed

pom.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,19 @@
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1515
</properties>
1616

17+
<dependencies>
18+
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
19+
<dependency>
20+
<groupId>org.projectlombok</groupId>
21+
<artifactId>lombok</artifactId>
22+
<version>1.18.24</version>
23+
<scope>provided</scope>
24+
</dependency>
25+
<dependency>
26+
<groupId>org.projectlombok</groupId>
27+
<artifactId>lombok</artifactId>
28+
<version>1.18.22</version>
29+
<scope>compile</scope>
30+
</dependency>
31+
</dependencies>
1732
</project>

src/main/java/org/ecn/medev/Achetable.java

Lines changed: 44 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public abstract class Achetable extends Case {
2121
protected Joueur proprietaire;
2222

2323
/**
24-
* Constructeur pour une case achetable
24+
* Constructeur pour une case achetable avec propriétaire. Le loyer est mis à 0 par défaut.
2525
* @param nom nom de la case
2626
* @param prix le prix de la case
2727
* @param proprietaire le proprietaire de la case
@@ -33,41 +33,70 @@ public Achetable(String nom, int prix, Joueur proprietaire) {
3333
this.proprietaire = proprietaire;
3434
}
3535

36-
36+
/**
37+
* Constructeur pour une case achetable sans propriétaire. Le loyer est mis à 0 par défaut.
38+
* @param nom le nom de la case
39+
* @param prix le prix de la case
40+
*/
3741
public Achetable(String nom, int prix) {
3842
super(nom);
3943
this.prix = prix;
4044
this.loyer = 0;
4145

4246
}
4347

48+
/**
49+
* Renvoie le prix d'achat de la case.
50+
* @return le prix
51+
*/
4452
public int getPrix() {
4553
return prix;
4654
}
4755

56+
/**
57+
* Renvoie le loyer sur la case.
58+
* @return le loyer
59+
*/
4860
public int getLoyer() {
4961
return loyer;
5062
}
5163

64+
/**
65+
* Renvoie le joueur propriétaire de la case.
66+
* @return le joueur propriétaire
67+
*/
5268
public Joueur getProprietaire() {
5369
return proprietaire;
5470
}
5571

72+
/**
73+
* Définit le prix de la case.
74+
* @param prix le nouveau prix
75+
*/
5676
public void setPrix(int prix) {
5777
this.prix = prix;
5878
}
5979

80+
/**
81+
* Définit le loyer sur la case.
82+
* @param loyer le nouveau loyer
83+
*/
6084
public void setLoyer(int loyer) {
6185
this.loyer = loyer;
6286
}
6387

88+
/**
89+
* Définit le propriétaire de la case.
90+
* @param proprietaire le propriétaire de la case.
91+
*/
6492
public void setProprietaire(Joueur proprietaire) {
6593
this.proprietaire = proprietaire;
6694
}
6795

6896
/**
69-
*
70-
* @param j
97+
* Permet au joueur d'acheter la case.
98+
* @param j le joueur acheteur
99+
* @throws org.ecn.medev.NoMoreMoney
71100
*/
72101
public void acheter(Joueur j) throws NoMoreMoney{
73102
this.setProprietaire(j);
@@ -78,30 +107,22 @@ public void acheter(Joueur j) throws NoMoreMoney{
78107
}
79108

80109
/**
81-
* <h1>CalculLoyer</h1>
82-
* La méthode MAJ le prix du loyer lors de l'achat ou de la construction
83-
* <p>
84-
*
110+
* Calcule le loyer sur la case. Le calcul est fait en fonction du type de case et du nombres de maisons et d'hotels.
85111
* @author Thomas Canal
86-
* @version 1.0
87-
* @since 2022-11-17
88112
*/
89-
public void calculLoyer()
90-
{
113+
public void calculLoyer() {
91114
int loyer = 0;
92115
int a,b;
93116

94117
a = 500;
95118
b = 100;
96119

97120
// est-ce une gare ?
98-
if(this instanceof Constructible)
99-
{
121+
if(this instanceof Constructible) {
100122
loyer = a * this.prix * ((Constructible)this).getNbHotels() + b * this.prix * ((Constructible)this).getNbMaisons();
101123
}
102124
// ou un constructible ?
103-
else if(this instanceof Gare)
104-
{
125+
else if(this instanceof Gare) {
105126
loyer = 2500 * Plateau.instance.nbGares(this.getProprietaire());
106127
}
107128

@@ -110,13 +131,17 @@ else if(this instanceof Gare)
110131

111132

112133

134+
/**
135+
* Renvoie une chaine de caractères représentant la case.
136+
* @return une chaine de caractères représentant la case.
137+
*/
113138
@Override
114139
public String toString() {
115-
String achetableString = getNom() + "(cout : " + getPrix() + " )";
116-
if (getProprietaire() == null) {
140+
String achetableString = this.getNom() + "(cout : " + this.getPrix() + " )";
141+
if (this.getProprietaire() == null) {
117142
return achetableString + " - Sans proprietaire";
118143
} else {
119-
return achetableString + " - Proprietaire : " + getProprietaire() + ", loyer: " + getLoyer();
144+
return achetableString + " - Proprietaire : " + this.getProprietaire() + ", loyer: " + this.getLoyer();
120145
}
121146
}
122147

src/main/java/org/ecn/medev/Case.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,46 @@
11
package org.ecn.medev;
22

3+
/**
4+
* Classe décrivant une case du plateau.
5+
*/
36
public abstract class Case {
7+
8+
/**
9+
* Nom de la case.
10+
*/
411
String nom;
512

13+
/**
14+
* Constructeurs pour une case.
15+
* @param nom le nom de la case.
16+
*/
617
public Case(String nom) {
718
this.nom = nom;
819
}
9-
20+
21+
/**
22+
* Renvoie le nom de la case.
23+
* @return le nom
24+
*/
1025
public String getNom() {
1126
return nom;
1227
}
1328

29+
/**
30+
* Définit le nom de la case.
31+
* @param nom le nouveau nom.
32+
*/
1433
public void setNom(String nom) {
1534
this.nom = nom;
1635
}
1736

37+
/**
38+
* Renvoie une chaine de caractères représentant la case.
39+
* @return
40+
*/
1841
@Override
1942
public String toString() {
20-
return "Case{" +
43+
return "Case{ " +
2144
"nom='" + nom + '\'' +
2245
'}';
2346
}
Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
11
package org.ecn.medev;
22

33
/**
4-
*
5-
* @author aulou
4+
* Classe des cases spéciales
65
*/
76
public class CaseSpeciale extends Case {
8-
9-
10-
// Constructeur par défaut : case départ
7+
118

129
/**
13-
*
10+
* Constructeurs par défaut.
1411
*/
1512
public CaseSpeciale(){
1613
super("Depart");
1714
}
1815

19-
public CaseSpeciale(String nom){
20-
super(nom);
21-
}
16+
/**
17+
* Constructeurs pour une case spéciale.
18+
* @param nom le nom de la case spéciale
19+
*/
20+
public CaseSpeciale(String nom){
21+
super(nom);
22+
}
2223

2324
/**
24-
*
25-
* @return
25+
* Renvoie le nom de la case.
26+
* @return le nom
2627
*/
2728
@Override
2829
public String getNom(){
2930
return(nom);
3031
}
3132

32-
public void effet(Joueur joueur) {
33-
33+
/**
34+
* Gère l'effet de la case sur le joueur.
35+
* @param joueur le joueur affecté
36+
*/
37+
public void effet(Joueur joueur) {
3438
}
3539
}

src/main/java/org/ecn/medev/Chance.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
package org.ecn.medev;
22

3+
/**
4+
* Classe de la case spéciale Chance.
5+
*/
36
public class Chance extends CaseSpeciale{
47

58
/**
6-
* Constructeur par defaut
9+
* Constructeur de Chance.
710
*/
811
public Chance() {
912
super("Chance");
1013
}
1114

15+
/**
16+
* Gére l'effet de la case Chance sur le joueur.
17+
* @param joueur le joueur affecté.
18+
*/
1219
@Override
1320
public void effet(Joueur joueur) {
1421

src/main/java/org/ecn/medev/Constructible.java

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,65 @@ public class Constructible extends Achetable {
2020
*/
2121
protected int nbHotels;
2222

23+
/**
24+
* Constructeur pour une case constructible.
25+
* @param nom le nom de la case
26+
* @param prix le prix d'achat de la case
27+
* @param proprietaire le propriétaire de la case
28+
* @param nbMaisons le nombre de maisons sur la case
29+
* @param nbHotels le nombre d'hotels sur la case
30+
*/
2331
public Constructible(String nom, int prix, Joueur proprietaire, int nbMaisons, int nbHotels) {
2432
super(nom, prix, proprietaire);
2533
this.nbMaisons = nbMaisons;
2634
this.nbHotels = nbHotels;
2735
}
2836

37+
/**
38+
* Constructeur pour une case constructible.
39+
* @param nom le nom de la case
40+
*/
2941
public Constructible(String nom){
30-
super(nom, -1);
42+
super(nom, 10000);
3143
}
32-
3344

45+
/**
46+
* Constructeur pour une case constructible.
47+
* @param nom le nom de la case
48+
* @param prix le prix de la case
49+
*/
50+
public Constructible(String nom, int prix){
51+
super(nom, prix);
52+
}
53+
54+
/**
55+
* Renvoie le nombre de maisons sur la case.
56+
* @return le nombre de maisons
57+
*/
3458
public int getNbMaisons() {
3559
return nbMaisons;
3660
}
3761

62+
/**
63+
* Renvoie le nombre d'hotels sur la case.
64+
* @return le nombre de cases
65+
*/
3866
public int getNbHotels() {
3967
return nbHotels;
4068
}
4169

70+
/**
71+
* Définit le nombre de maisons sur la case.
72+
* @param nbMaisons le nouveau nombre de maison
73+
*/
4274
public void setNbMaisons(int nbMaisons) {
4375
this.nbMaisons = nbMaisons;
4476
}
4577

78+
/**
79+
* Définit le nombre d'hotels sur la case.
80+
* @param nbHotels le nouveau nombre d'hotels
81+
*/
4682
public void setNbHotels(int nbHotels) {
4783
this.nbHotels = nbHotels;
4884
}
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package org.ecn.medev;
22

3+
/**
4+
* Classe de la case Départ.
5+
*/
36
public class Depart extends CaseSpeciale {
47

5-
68
/**
7-
* Constructeur par defaut
9+
* Constructeur de la case spéciale Départ.
810
*/
911
public Depart() {
1012
super("Depart");
1113
}
1214

15+
/**
16+
* Réalise l'effet de la case Départ sur le joueur.
17+
* @param joueur le joueur affecté.
18+
*/
1319
@Override
1420
public void effet(Joueur joueur) {
15-
1621
}
1722
}

0 commit comments

Comments
 (0)