Skip to content
Snippets Groups Projects
Commit 15b831b8 authored by diallo's avatar diallo
Browse files

Ajout des classes Plateau et Véhicule

parent 8a96672d
Branches
No related tags found
No related merge requests found
class Plateau():
""" à_remplacer_par_ce_que_fait_la_classe
Exemple(s) :
$$$
"""
def __init__(self):
""" Initialise le plateau de la grille
Précondition :
Exemple(s) :
$$$
"""
self.taille=(6,6)
self.liste_vehicule=[]
GRILLE_VIDE=[[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' '],[' ',' ',' ',' ',' ',' ',' ']]
def initialiser_grille()->None:
""" à_remplacer_par_ce_que_fait_la_fonction
Précondition :
Exemple(s) :
$$$
"""
for lignes in GRILLE_VIDE:
print('|'+lignes[0]+'|'+lignes[1]+'|'+lignes[2]+'|'+lignes[3]+'|'+lignes[4]+'|'+lignes[5]+'|')
def position_vehicules(self):
""" renvoie un ensemble contenant la position de chaque vehicule
Précondition :
Exemple(s) :
$$$
"""
res=set()
for vehicule in liste_vehicule:
x,y=vehicule.position
for i in range(vehicule.taille):
if vehicule.orientation=='horizontal':
res.add((x,y+i))
elif vehicule.orientation=='vertical':
res.add((x+i,y))
return res
def ajout_vehicule(self,vehicule):
""" ajoute le vehicule à sa position dans le plateau
Précondition :
Exemple(s) :
$$$
"""
if est_position_valide(vehicule):
self.liste_vehicule.add(vehicule)
else:
print("la position du vehicule est invalide ")
def est_position_valide(self,vehicule):
""" verifie si la position du vehicule est valide
Précondition :
Exemple(s) :
$$$
"""
self.position=vehicule.position
x , y = self.position
i=0
while i < vehicule.taille:
if vehicule.orientation=='horizontal':
if (x,y+i) in self.position_vehicules() or y+i>=self.taille[0]:
return False
elif vehicule.orientation=='vertical':
if (x,y+i) in self.position_vehicules() or y+i>=self.taille[1]:
return False
return True
def est_voiture_rouge(self,liste_vehicule)->bool:
""" verifie si c'est bel et bien la voiture rouge et si elle peux sortir par la droite
Précondition :
Exemple(s) :
$$$
"""
for vehicule in self.liste_vehicule:
if couleur.vehicule=='R':
x,y=vehicule.position
if vehicule.orientation=='horizontal' and y+vehicule.taille>=self.taille[0]:
return True
return False
\ No newline at end of file
class Vehicule():
""" à_remplacer_par_ce_que_fait_la_classe
Exemple(s) :
$$$ vehicule_rouge=Vehicule('r',(3,2),2,'horizontale')
$$$ vehicule_rouge.couleur
'r'
$$$ vehicule_rouge.position
(3,2)
$$$ vehicule_rouge.longueur
2
$$$ vehicule_rouge.orientation
'horizontale'
"""
def __init__(self,couleur:str,position:tuple,longueur:int,orientation:str):
""" initialise une voiture tout en tenant compte de sa couleur et sa position
Précondition :
Exemple(s) :
$$$
"""
self.couleur=couleur
self.position=position
self.longueur=longueur
self.orientation=orientation
def __repr__(self):
""" à_remplacer_par_ce_que_fait_la_fonction
Précondition :
Exemple(s) :
$$$
"""
return f"({self.couleur},{self.position},{self.longueur},{self.orientation})"
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment