# Mouvement

class `Mouvement.``Mouvement`(voiture, direction)
  Variables

    - direction (Direction) – La direction dans lequel le mouvement doit être effectué

    - voiture (Voiture) – La voiture qui doit effetuer le déplacement

  `__init__`(voiture, direction)

    Constructeur de la classe

    Paramètres

      - direction (Direction) – La direction dans lequel le mouvement doit être effectué

      - voiture (Voiture) – La voiture qui doit effetuer le déplacement

        >>> from Voiture import Voiture
        >>> from Sens import Sens
        >>> from Taille import Taille
        >>> from Direction import Direction
        >>>
        >>> voiture = Voiture(0,0,"A", Sens.HORIZONTAL, Taille.DEUX)
        >>> mouvement = Mouvement(Direction.DROITE, voiture )

  `__eq__`(mouvement)

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

    On condisère que 2 mouvements sont identiques si :

    - leur direction sont identiques

    - leurs voitures sont identiques

    La méthode retourne donc :

    - `True` : Les deux mouvement sont identiques

    - `False` : Les deux mouvements sont différents

    Paramètres

      mouvement (Mouvement) – Une mouvement

    Type renvoyé

      `boolean`

        >>> from Voiture import Voiture
        >>> from Sens import Sens
        >>> from Taille import Taille
        >>> from Direction import Direction
        >>>
        >>> voiture = Voiture(0,0,"A", Sens.HORIZONTAL, Taille.DEUX)
        >>> mouvement1 = Mouvement(Direction.DROITE, voiture )
        >>> mouvement2 = Mouvement(Direction.GAUCHE,voiture)
        >>> mouvement3 = Mouvement(Direction.GAUCHE, voiture)
        >>> mouvement1 == mouvement2
        False
        >>> mouvement3 == mouvement2
        True

  `execute`(situation)

    Retourne la nouvelle situation après déplacement de la voiture.

    Paramètres

      situation (Situation) – La situation où la voiture se déplace

    Type renvoyé

      `Situation`

        >>> from Voiture import Voiture
        >>> from Sens import Sens
        >>> from Taille import Taille
        >>> from Direction import Direction
        >>> from Situation import Situation
        >>>
        >>> voiture = Voiture(0,0,"A", Sens.HORIZONTAL, Taille.DEUX)
        >>> situation = Situation([voiture])
        >>> situation.afficher()
        [A][A][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        >>> mouvement = Mouvement(voiture, Direction.DROITE)
        >>> nouvelle_situation = mouvement.execute(situation)
        >>> nouvelle_situation.afficher()
        [ ][A][A][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]
        [ ][ ][ ][ ][ ][ ]

  `info`()

    Retourne les informations du mouvement :

    - La lettre qui identifie la voiture

    - La direction

    Type renvoyé

      `dictionnary`

        >>> from Voiture import Voiture
        >>> from Sens import Sens
        >>> from Taille import Taille
        >>> from Direction import Direction
        >>>
        >>> voiture = Voiture(0,0,"A", Sens.HORIZONTAL, Taille.DEUX)
        >>> mouvement = Mouvement(voiture, Direction.DROITE)
        >>> mouvement.info()
        {'voiture': 'A', 'direction': 'Direction.DROITE'}