In [1]:
def couleur(couleur):
    """
    couleur -- chaîne  qui vaut 'coeur' ou 'carreau' ou 'trèfle' ou 'pique'
    
    renvoie la liste des cartes de cette couleur.
    """
    assert couleur in ('coeur', 'carreau', 'trèfle', 'pique'), "La couleur proposée n'existe pas."
    return [(couleur, k) for k in range(1,14)]
        
In [2]:
def jeu_de_cartes():
    """
    renvoie la liste des 13*4 cartes.
    """
    return couleur('coeur') + couleur('carreau') + couleur('trèfle') + couleur('pique')
In [3]:
jeu = jeu_de_cartes()
In [4]:
from random import randint
def distribue_une_carte(joueur):
    """
    joueur -- liste des cartes d'un joueur
    
    tire une carte au hasard dans le jeu de cartes, la supprime du jeu de cartes,
    l'ajoute au jeu du joueur.
    """
    # choix d'une carte au hasard dans le jeu (et suppression de cette carte du jeu):
    carte = jeu.pop(randint(0,len(jeu)-1))
    # ajout de la carte choisie dans le jeu du joueur:
    joueur.append(carte)
In [5]:
def distribue_jeu(n, liste_joueurs):
    """
    n -- nombre de cartes à distribuer à chaque joueur.
    liste_joueurs -- liste des listes des cartes des joueurs
     
    
    distribue n cartes à chaque joueur.
    """
    assert len(liste_joueurs)*n <= len(jeu), "Attention, il n'y a pas assez de cartes dans le jeu."
    for k in range(n):
        for joueur in liste_joueurs:
            distribue_une_carte(joueur)
             
In [6]:
antoine = []
basile = []
casimir = []
doryphore = []
In [7]:
distribue_jeu(4, [antoine, basile, casimir, doryphore])
In [8]:
basile
Out[8]:
[('carreau', 8), ('coeur', 6), ('carreau', 11), ('carreau', 12)]
In [9]:
antoine
Out[9]:
[('pique', 10), ('trèfle', 3), ('pique', 8), ('trèfle', 10)]
In [10]:
casimir
Out[10]:
[('pique', 9), ('carreau', 1), ('coeur', 10), ('carreau', 5)]
In [11]:
doryphore
Out[11]:
[('coeur', 4), ('trèfle', 8), ('carreau', 2), ('coeur', 13)]
In [ ]: