25-NSIJ2PO1-1

  1. class Carte:
        def __init__(self, valeur):
            self.valeur = valeur
            self.TdB = self.calcul_TdB()
    
  2. def calcul_TdB(self):
        tdb = 0
        if self.valeur % 11 == 0:
            tdb += 5
        if self.valeur % 10 == 0:
            tdb += 3
        if self.valeur % 10 == 5:
            tdb += 2
        if tdb == 0:
            tdb = 1
        return tdb
    
    # alternative
    def calcul_TdB(self):
        v = self.valeur
        return max(1, (v % 11 == 0) * 5 + (v % 10 == 0) * 3 + (v % 10 == 5) * 2)
    
  3. def est_superieure_a(self, autre):
        return self.valeur > autre.valeur
    
  4. class Paquet:
        def __init__(self, L):
            self.contenu = L
    
        def afficher(self):
            for carte in self.contenu:
                print(carte.valeur)
    
        def ajouter_carte(self, carte):
            self.contenu.append(carte)
    
  5. def nombre_TdB(self):
        total = 0
        for carte in self.contenu:
            total += carte.TdB
        return total
    
    # alternative
    def nombre_TdB(self):
        return sum(carte.TdB for carte in self.contenu)
    
  6. def distribuer(self, nbr):
        paquets = [Paquet([]) for j in range(nbr)]
        for i in range(10):
            for j in range(nbr):
                paquets[j].ajouter_carte(self.contenu.pop())
        return paquets
    
  7. J1 = Joueur('Joueur 1', L[0])
    
  8. from random import *
    
    jeu = [Carte(i) for i in range (1, 105)]
    shuffle(jeu)
    jeu_initial = Paquet(jeu)
    distri = jeu_initial.distribuer(2)
    
    Ordi = Joueur('Ordi', distri[0])
    J1 = Joueur('J1', distri[1])