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
| class Plateau:
def __init__(self, longueur, hauteur):
self._longueur = longueur
self._hauteur = hauteur
self._matrice = ['_' for _ in range(longueur * hauteur)]
@property
def longueur(self):
return self._longueur
@property
def hauteur(self):
return self._hauteur
def __getitem__(self, coordonnees):
x, y = coordonnees
self._verifier_coordonnees(x, y)
return self._matrice[y * self._longueur + x]
def __setitem__(self, coordonnees, valeur):
x, y = coordonnees
self._verifier_coordonnees(x, y)
self._matrice[y * self._longueur + x] = valeur
def _verifier_coordonnees(self, x, y):
if not (0 <= x < self._longueur and 0 <= y < self._hauteur):
raise ValueError('Coordonnées invalides')
def __repr__(self):
affichage = " " + " ".join(str(j) for j in range(self._hauteur)) + "\n"
for i in range(self._longueur):
affichage += str(i) + " " + " ".join(self[i, j] for j in range(self._hauteur)) + "\n"
return affichage
# Exemple d'utilisation
plateau = Plateau(8, 8)
print(plateau)
print()
print("Valeur à la position (0, 0) : ", plateau[0, 0])
print()
plateau[0, 0] = 'X'
print(plateau)
print()
print("Valeur à la position (0, 0) : ", plateau[0, 0]) |
Partager