60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from RobotMobile import RobotMobile
|
|
|
|
class Aspirateur:
|
|
def __init__(self, marque, puissance):
|
|
self.marque = marque
|
|
self.puissance = puissance
|
|
|
|
@property
|
|
def marque(self):
|
|
return self._marque
|
|
|
|
@marque.setter
|
|
def marque(self, value):
|
|
if isinstance(value, str) and value:
|
|
self._marque = value
|
|
else:
|
|
print("Erreur : la marque doit être une chaîne non vide.")
|
|
self._marque = "Inconnu"
|
|
|
|
@property
|
|
def puissance(self):
|
|
return self._puissance
|
|
|
|
@puissance.setter
|
|
def puissance(self, value):
|
|
if isinstance(value, int) and value > 0:
|
|
self._puissance = value
|
|
else:
|
|
print("Erreur : la puissance doit être un entier positif.")
|
|
self._puissance = 1000
|
|
|
|
def __str__(self):
|
|
return f"Aspirateur {self.marque}, puissance={self.puissance}W"
|
|
|
|
|
|
# --- Aspirateur Robot ---
|
|
class AspirateurRobot(Aspirateur, RobotMobile):
|
|
def __init__(self, marque, puissance, distance_max):
|
|
# Initialisation RobotMobile avec type "Aspirateur robot"
|
|
RobotMobile.__init__(self, robot_type="Aspirateur robot", orientation="NORD", statut=1, abscisse=0, ordonnee=0)
|
|
Aspirateur.__init__(self, marque, puissance)
|
|
self.distance_max = distance_max
|
|
self._distance_parcourue = 0 # pour suivre le parcours
|
|
|
|
@property
|
|
def distance_max(self):
|
|
return self._distance_max
|
|
|
|
@distance_max.setter
|
|
def distance_max(self, value):
|
|
if isinstance(value, (int, float)) and value > 0:
|
|
self._distance_max = value
|
|
else:
|
|
print("Erreur : distance_max doit être positive.")
|
|
self._distance_max = 100
|
|
|
|
def __str__(self):
|
|
return (super(RobotMobile, self).__str__() + f"\nMarque : {self.marque}\n"
|
|
f"Puissance : {self.puissance}W")
|