61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import random
|
|
import string
|
|
|
|
|
|
class Robot:
|
|
nb_robot = 0
|
|
ORIENTATIONS = ["NORD", "EST", "SUD", "OUEST"]
|
|
STATUTS = {1: "En service", 2: "Hors Service", 3: " En réparation"}
|
|
DEFAULT_TYPE = "Générique"
|
|
|
|
def __init__(self, robot_type=DEFAULT_TYPE):
|
|
self.robot_type = robot_type
|
|
self._numero_serie = ''.join([random.choice(string.ascii_uppercase) for i in range(2)]) \
|
|
+ ("%4d" % random.randint(0, 1000000000))
|
|
self._orientation = Robot.ORIENTATIONS[0]
|
|
self._statut = 1
|
|
|
|
Robot.nb_robot += 1
|
|
|
|
@property
|
|
def robot_type(self):
|
|
return self._robot_type
|
|
|
|
@robot_type.setter
|
|
def robot_type(self, value):
|
|
if len(value) >= 2:
|
|
self._robot_type = value
|
|
else:
|
|
self._robot_type = Robot.DEFAULT_TYPE
|
|
print("Le type du robot doit comporter au minimum 2 caractères.")
|
|
|
|
@property
|
|
def numero_serie(self):
|
|
return self._numero_serie
|
|
|
|
@property
|
|
def orientation(self):
|
|
return self._orientation
|
|
|
|
@property
|
|
def statut(self):
|
|
return self.statut
|
|
|
|
@statut.setter
|
|
def statut(self, value):
|
|
if value in Robot.STATUTS.keys():
|
|
self._statut = value
|
|
else:
|
|
self._robot_type = Robot.DEFAULT_TYPE
|
|
print("Statut invalide ! Valeurs acceptées : ", Robot.STATUTS)
|
|
|
|
def __str__(self):
|
|
return "Robot {} - {}\nStatut : {}\nOrientation : {}".format(self._numero_serie, self._robot_type, Robot.STATUTS[self._statut],
|
|
self._orientation)
|
|
|
|
def tourner(self, value):
|
|
if value in [1, -1]:
|
|
self._orientation = Robot.ORIENTATIONS[(Robot.ORIENTATIONS.index(self._orientation) + value)%len(Robot.ORIENTATIONS)]
|
|
else:
|
|
print("Un robot peut tourner de 1 ou de -1.")
|