# -*- encoding:utf8 -*-

# Classes simulant un jeu de cartes standard

from random import *

class Carte(object):
    "Représente une carte traditionnelle"

    # Attributs de classe communs à toutes les instances de la classe

    Valeurs = {6:'6', 7:'7', 8:'8', 9:'9', 10:'10', 11:'Valet', 12:'Dame', 13:'Roi', 14:'As'}
    Couleurs = ['Coeur', 'Carreau', 'Trèfle', 'Pique']

    def __init__(self, val = 6, coul = 0):
        "Initialise une carte particulière"

        if 6 <= val <= 14 and 0 <= coul <= 3:
            self.valeur = val
            self.couleur = coul
        else:
            self.valeur = 6
            self.couleur = 0
            
    def __str__(self):
        "Surcharge la fonction print"

        return '{} de {}'.format(Carte.Valeurs[self.valeur], Carte.Couleurs[self.couleur])


    def __lt__(self, autre):
        """
        Surcharge l'opérateur <
        Retourne True si la valeur de <self> est plus petite que la valeur de <autre>,
        False sinon"""

        if self.valeur < autre.valeur:
            return True
        else:
            return False

    def __gt__(self, autre):
        """
        Surcharge l'opérateur <
        Retourne Tru si la valeur de <self> est plus grande que la valeur de <autre>,
        False sinon"""

        if self.valeur > autre.valeur:
            return True
        else:
            return False

    def __eq__(self, autre):
        """
        Surcharge l'opérateur ==
        Retourne True si la valeur de <self> est égale à la valeur de <autre>,
        False sinon"""

        if self.valeur == autre.valeur:
            return True
        else:
            return False


class Jeu(object):
    "Représente un jeu de cartes traditionnel"

    def __init__(self):
        "Initialise le jeu de cartes"
        self.cartes = [] # un jeu est symbolisé par une liste de cartes
        # Remplissez la liste des 36 cartes standard:
        # à compléter
        

    def tirer(self):
        """
        Tire la première carte du jeu, la retourne à l'appelant
        et l'enlève du jeu. Retourne 0 s'il n'y a plus de carte
        """
        # à compléter

    def battre(self):
        "Mélange les cartes de manière aléatoire"
        # à compléter



class Main(Jeu):
    "Représente une main composée de cartes"

    def __init__(self):
        # Une main est initialement vide !!
        # à compléter

    def ajouter(self, carte):
        "Ajouter une carte à la main"
        # à compléter

    def trier(self):
        "Trie les cartes de manière croissante"

        # à compléter
