-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStrategyDefault.java
83 lines (64 loc) · 1.53 KB
/
StrategyDefault.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/**
* Comportement par defaut d'un consommateur
*/
public class StrategyDefault extends Strategy {
/**
* Constructeur vide
*/
public StrategyDefault () {}
/**
* Redefinition de la methode standard toString()
*
* @return le type de strategie
*/
@Override
public String toString() {
return super.toString() + " par defaut";
}
/**
* Redefinition de la methode standard equals()
*
* @return si deux strategies sont de meme type
*/
@Override
public boolean equals(Object obj) {
if ((this != null) && (this.getClass() == obj.getClass())) {
return super.equals(obj);
}
return false;
}
/**
* Redefinition de la methode abstraite acheter()
*
* @param c : consommateur dont le comportement est a simuler
*/
@Override
public void acheter(Consommateur c) {
double pR = c.getPRachat();
Boulangerie b = Boulangerie.getBoulangerie(0, 0, 0, 0, 0);
boolean bool;
bool = c.ajouter(b.getPTab(), b.getNbPains());
if (bool) {
b.decrNbP();
}
for (double p = Math.random(); p <= pR; p *= 1.5) {
bool = c.ajouter(b.getPTab(), b.getNbPains());
if (bool) {
b.decrNbP();
}
}
for (double p = Math.random(); p <= pR; p *= 1.8) {
double p2 = Math.random();
if (p2 <= 0.33) {
bool = c.ajouter(b.getGTab(), b.getNbGateaux());
if (bool) {
b.decrNbG();
}
}
bool = c.ajouter(b.getVTab(), b.getNbViennoiseries());
if (bool) {
b.decrNbV();
}
}
}
}