Exercice bilan corrigé

🐍 Script Python
    import random

    class JeuDeDomino:
        """ Classe JeuDeDomino """

        def __creerJeu(self):
            """ Pour créer un jeu de 28 pièces toutes différentes """
            jeu = []
            for i in range(7):
                for j in range(i+1):
                    jeu.append(Domino(i, j))
            return jeu

        def __init__(self):
            """ Constructeur """
            self.__Jeu = self.__creerJeu()
            self.__NbPieces = 28

        def Melanger(self):
            """ Mélange aléatoirement le jeu de dominos """
            random.shuffle(self.__Jeu)

        def AfficherJeu(self):
            """ Affiche toutes les pièces du jeu ou la pioche si il y eu distribution """
            for el in self.__Jeu:
                el.AfficherDomino()

        def Distribuer(self, nb_joueur):
            """ Extrait des dominos du jeu pour un joueur et retourne une liste de 6 ou 7 dominos """
            jeu_joueur = []
            if nb_joueur == 2:
                nb_domino = 7
            else:
                nb_domino = 6

            for i in range(nb_domino):
                dom = self.__Jeu.pop(0)
                jeu_joueur.append(dom)
                self.__NbPieces = self.__NbPieces - 1

            return jeu_joueur

    class Domino:
        def __init__(self, ptg, ptd):
            self._cote_gauche = ptg
            self._cote_droit = ptd


        def AfficherDomino(self):
            if self.EstDouble():
                print(" --- ")
                print("| " + str(self._cote_gauche) + " |")
                print("|---|")

                print("| " + str(self._cote_gauche) + " |")
                print(" --- ")
            else:
                print(" ------- ")
                print("| " + str(self._cote_gauche) + " | " + str(self._cote_droit) + " |")
                print(" ------- ")


        def Nb_points(self):
            return self._cote_gauche + self._cote_droit

        def EstBlanc(self):
            return self._cote_gauche == 0 or self._cote_droit == 0

        def EstDouble(self):
            return self._cote_gauche == self._cote_droit

    monjeu = JeuDeDomino()
    monjeu.Melanger()

    jeu1 = monjeu.Distribuer(2)
    print("joueur1")
    points_joueur1 = 0
    nb_domino_blc_1 = 0
    nb_dominos_double_1 = 0
    for i in range(len(jeu1)):
        jeu1[i].AfficherDomino()
        points_joueur1 += jeu1[i].Nb_points()
        if jeu1[i].EstDouble():
            nb_dominos_double_1 += 1
        if jeu1[i].EstBlanc():
            nb_domino_blc_1 += 1
    print("points :", points_joueur1, "points possibles : dont", nb_domino_blc_1, "blanc(s) et", nb_dominos_double_1, "double(s)")

    jeu2 = monjeu.Distribuer(2)
    print("joueur2")
    points_joueur2 = 0
    nb_domino_blc_2 = 0
    nb_dominos_double_2 = 0
    for i in range(len(jeu2)):
        jeu2[i].AfficherDomino()
        points_joueur2 += jeu2[i].Nb_points()
        if jeu2[i].EstDouble():
            nb_dominos_double_2 += 1
        if jeu2[i].EstBlanc():
            nb_domino_blc_2 += 1
    print("points :", points_joueur2, "points possibles : dont", nb_domino_blc_2, "blanc(s) et", nb_dominos_double_2, "double(s)")

    print("pioche")
    monjeu.AfficherJeu()