-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPersonnage.java
140 lines (91 loc) · 3.11 KB
/
Personnage.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/* Fichier: Personnage.java
*
* Auteurs: Philippe Brisson et
*
* Le jeu de labyrinthe invisible est un jeu de mémoire qui fonctionne selon le principe suivant:
* Au début du jeu, l'ordinateur crée un labyrinthe au hasard. Il crée au hasard une entrée par la gauche et une sortie
* par la droite. Des murets sont construits à l’intérieur. Un personnage (représenté par @) est placé juste à l’entrée
* du labyrinthe dans l'extrême gauche du labyrinthe
*
*/
public class Personnage {
// attributs i (position en hauteur), j (position en largeur), vie (actuelle) et vieInitiale (entrée par l'utilisateur) et labyrinthe associé.
private int i, j, vie, vieInitiale;
private Labyrinthe labyrinthe;
// prend en paramètre le labyrinthe, la position (i, j) et le nombre de vies et construit un personnage
Personnage(Labyrinthe l, int i, int j, int vie){
setLabyrinthe(l);
this.i = i;
this.j = j;
this.vie = vie;
this.vieInitiale = vie;
}
// retourne le labyrinthe associé au personnage
public Labyrinthe getLabyrinthe() {
return labyrinthe;
}
// prend un labyrinthe en paramètre et l'associe au joueur
public void setLabyrinthe(Labyrinthe labyrinthe) {
this.labyrinthe = labyrinthe;
}
// retourne la position i du joueur
public int getPositionI(){
return i;
}
// retourne la position j du joueur
public int getPositionJ(){
return j;
}
// retourne le nombre de vies restantes au joueur
public int getVie(){
return vie;
}
// retourne le nombre de vies initiales du joueur
public int getVieInitiale(){
return vieInitiale;
}
// fait perdre une vie au joueur.
public void perdreUneVie(){
vie--;
}
// prend en paramètre un labyrinthe et une direction, et vérifie s'il y a un mur ou pas dans la direction demandée.
public boolean peutSeDeplacer(Labyrinthe l, char direction){
// si on veut aller a droite, on retourne "true" s'il n'y a pas de mur
if(direction == 'd'){
return !l.aMuretADroite(i, j);
}
// si on veut aller a gauche, on retourne "true" s'il n'y a pas de mur
else if(direction == 'g'|| direction == 's'){
return !l.aMuretAGauche(i, j);
}
// si on veut aller en haut, on retourne "true" s'il n'y a pas de mur
else if(direction == 'h' || direction == 'e'){
return !l.aMuretEnHaut(i, j);
}
// si on veut aller en bas, on retourne "true" s'il n'y a pas de mur
else{
return !l.aMuretEnBas(i, j);
}
}
// prend une direction en paramètre et actualise la position du joueur.
public void actualiserPosition(char direction){
switch(direction){
// si on veut aller a gauche, on modifie la position j.
case 'g':
j -= 8;
break;
// si on veut aller a droite, on modifie la position j.
case 'd':
j += 8;
break;
// si on veut aller en haut, on modifie la position i.
case 'h':
i -= 4;
break;
// si on veut aller en bas, on modifie la position i.
case 'b':
i += 4;
break;
}
}
}