Voiture

class Voiture.Voiture(x, y, lettre, sens, taille)
Variables
  • x (int) – La position en abscisse

  • y (int) – La position en ordonnée

  • lettre (str) – La lettre qui identifie la voiture

  • sens (Sens) – Le sens de la voiture : horizontale ou verticale

  • taille (Taille) – La taille de la voiture : deux ou trois

  • case (list) – La liste des cases de la grille occupées par la voiture

__init__(x, y, lettre, sens, taille)

Constructeur de la classe.

Paramètres
  • x (int) – La position en abscisse

  • y (int) – La position en ordonnée

  • lettre (str) – La lettre qui identifie la voiture

  • sens (Sens) – Le sens de la voiture : horizontale ou verticale

  • taille (Taille) – La taille de la voiture : deux ou trois

>>> from Sens import Sens
>>> from Taille import Taille
>>> voiture = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
__eq__(voiture)

Indique l’égalité ou non entre 2 voitures.

On condisère que 2 voitures sont identiques si :

  • leur lettre sont identiques

  • leurs positions sont identiques

  • leur taille sont identiques

La méthode retourne donc :

  • True : Les deux voitures sont identiques

  • False : Les deux situations sont différentes

Paramètres

a (Situation) – Une voiture

Type renvoyé

boolean

>>> from Sens import Sens
>>> from Taille import Taille
>>>
>>> voiture_un = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> voiture_deux = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> voiture_trois = Voiture(2,2,"C",Sens.VERTICAL,Taille.DEUX)
>>>
>>> voiture_un == voiture_deux
True
>>> voiture_un == voiture_trois
False
__str__()

Génère une chaine de charactères indiquant la lettre de la voiture.

>>> from Sens import Sens
>>> from Taille import Taille
>>>
>>> voiture = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> print(voiture)
[A]
generer_cases_utilises()

Génère la liste des cases utilisées par la voiture.

Une voiture avec une taille de 2 générera une liste de 2 cases.

Une voiture avec une taille de 3 générera une liste de 3 cases.

Cette méthode est appelée par le constructeur pour initialiser l’attribut case.

Type renvoyé

list(tuple())

>>> from Sens import Sens
>>> from Taille import Taille
>>>
>>> voiture = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> voiture.case
[(2, 2), (2, 3)]
info()

Retourne les informations d’une voiture :

  • La lettre

  • La position

  • Le sens

  • La taille

  • Les cases utilisées

Type renvoyé

dictionnary

>>> from Sens import Sens
>>> from Taille import Taille
>>>
>>> voiture = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> voiture = Voiture(2,2,"A",Sens.VERTICAL,Taille.DEUX)
>>> voiture.info()
{'lettre': 'A', 'position': (2, 2), 'sens': <Sens.VERTICAL: 2>, 'taille': <Taille.DEUX: 2>, 'case': [(2, 2), (2, 3)]}
move(direction, situation)

Effectue le déplacement d’une voiture et retourne la nouvelle situation après déplacement.

Paramètres
  • direction (Direction) – La direction dans laquelle il faut bouger la voiture

  • situation (type) – La situation de jeu d’origine

Type renvoyé

Situation

>>> from Sens import Sens
>>> from Taille import Taille
>>> from Situation import Situation
>>> from Direction import Direction
>>>
>>> # Création d'une voiture
>>> voiture = Voiture(2,2,"X",Sens.HORIZONTAL,Taille.DEUX)
>>>
>>> #Création d'une situation
>>> situation = Situation([voiture])
>>> situation.afficher()
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][X][X][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
>>>
>>> #Génération de la nouvelle situation
>>> nouvelle_situation = voiture.move(Direction.DROITE, situation)
>>> nouvelle_situation.afficher()
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][X][X][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]