# -*- encoding:utf8 -*-

# Modélisation d'une voiture

class Voiture(object):
    """Définition d'une voiture"""

    count = 0       # attribut de classe partagé par tous les objets de la classe
    
    def __init__(self, marque ='Ford', couleur ='rouge'):
        Voiture.count += 1      # incrémentation de l'attribut de classe count
        self.marque =marque
        self.couleur =couleur
        self.pilote ='personne'
        self.vitesse =0

    def choix_conducteur(self, nom):
        """
        choix_conducteur(str nom) --> None
        Affecte <nom> au conducteur de l'instance voiture"""
        self.pilote = nom

    def accelerer(self, taux, duree):
        """
        accelerer(float taux, float duree) --> None
        Fait varier la vitesse de la voiture en lui ajoutant <taux>*<duree>
        """
        if self.pilote == 'personne':
            print("Cette voiture n'a pas de conducteur !")
        else:
            gain = taux*duree
            self.vitesse += gain
            if self.vitesse < 0:
                self.vitesse = 0

    def affiche_tout(self):
        """
        affiche_tout() --> None
        Affiche les propriétés de la voiture
        """
        print("{marque} {coul} pilotée par {nom} à une vitesse de {vit} m/s.".\
              format(marque=self.marque, coul=self.couleur, nom=self.pilote, vit=self.vitesse))

# Programme de test

if __name__ == "__main__":

    print("Nombre de voitures existantes: ", Voiture.count)
    a1 = Voiture('Peugeot', 'bleue')
    a2 = Voiture(couleur = 'verte')
    a3 = Voiture('Mercedes')
    print("Nombre de voitures existantes: ", Voiture.count)
    a1.choix_conducteur('Roméo')
    a2.choix_conducteur('Juliette')
    a2.accelerer(1.8, 12)
    a3.accelerer(1.9, 11)
    a2.affiche_tout()
    a3.affiche_tout()

    input("Appuyez sur une touche pour fermer la fenetre !")
    
