-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathRessource.py
More file actions
190 lines (147 loc) · 4.73 KB
/
Ressource.py
File metadata and controls
190 lines (147 loc) · 4.73 KB
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
from numpy.random import randint
class Ressource(object):
"""
Classe décrivant les comportement par défaut des ressources. Peut-être
utilisée en l'état ou sous classée pour définir des comportements différents.
"""
def __init__(self, abscisse, ordonnee, cart,valeur):
"""
Crée une ressource aux coordonnées désirées.
Paramètres
----------
abscisse, ordonnée: int
Les coordonnées auxquelles la ressource sera créé.
cart : Objet Map
La carte du jeu sur laquelle évolue l'objet.
valeur : int
La valeur de la ressource.
"""
self._cart = cart
self.coords = abscisse, ordonnee
self.valeur= valeur
self._cart.append(self)
self._cart.ss_carte[abscisse][ordonnee]= self
def __str__(self):
"""
Affiche l'état courant de la ressource.
Paramètres
----------
Aucun
Renvoie
-------
s: str
La chaîne de caractères qui sera affichée via ''print''
"""
return "%s: position (%i, %i) valeur %i"%(
self.car(), self.x, self.y,self.valeur)
def car(self):
"""
Renvoie l'identifiant du type de ressource.
Paramètres
----------
Aucun
Renvoie
-------
c: str
Le caractère représentant la ressource.
"""
return 'R'
def affichage(self):
"""
Permet l'affichage de l'objet Ressource.
Paramètres
----------
Aucun
Renvoie
-------
s : str
La chaîne de caractères désignant l'objet Ressource.
"""
print(str(self))
@property
def coords(self):
"""
coords: tuple
Les coordonnées de la ressource sur le plateau de jeu
"""
return self.__coords
@property
def x(self):
"""
x: nombre entier
Abscisse de la ressource
"""
return self.coords[0]
@property
def y(self):
"""
y: nombre entier
Ordonnée de la ressource
"""
return self.coords[1]
@coords.setter
def coords(self, nouv_coords):
"""
Met à jour les coordonnées de la ressource.
Garantit qu'elles arrivent dans la zone définie par
la carte self._cart.
Paramètres
----------
nouv_coords : tuple représentant les nouvelles coordonnées de la ressource.
Renvoie :
----------
Rien.
"""
x, y = nouv_coords
x = min(x, self._cart.dims[0]-1)
x = max(x, 0)
y = min(y, self._cart.dims[1]-1)
y = max(y, 0)
self.__coords = (x, y)
def disparition(self):
""" Méthode permettant de supprimer l'objet ressources. Elle supprime celui-ci
de l'ensemble des listes/arrays où cet objet est stocké.
Paramètres :
-------------
Aucun.
Renvoie :
----------
Rien.
"""
x,y = self.coords
self._cart.remove(self)
self._cart.ss_carte[x][y] = ' '
class metal(Ressource):
"""
Classe décrivant les comportement par défaut de la ressource metal
"""
def __init__(self, abscisse, ordonnee, cart,valeur):
super().__init__(abscisse, ordonnee, cart,valeur)
def car(self):
"""Méthode permettant d'afficher la ressource sur la carte. Elle renvoie
le symbole associé à la ressource.
Paramètres :
-------------
Aucun.
Renvoie :
-----------
'M' : str
Le symbole associé à la ressource.
"""
return 'M '
def T_car(self):
"""Méthode contenant l'ensemble des informations permettant d'identifier la ressource.
Dans l'ordre :
N : le rôle du joueur possédant l'objet. Ici, aucun joueur : donc la ressource
est neutre.
O : le type global de l'objet. Ici, Objet.
M : le role de l'objet. Ici, Métal.
Paramètres :
-------------
Aucun.
Renvoie :
----------
'N_O_M' : str
La chaîne de caractère identifiant la ressource.
"""
return('N_O_M')