Je programme depuis 30 ans mais je me met à Python et à la programmation objet depuis peu...
Etant amené à programmer des prototypes de jeux de cartes de société, je souhaite avoir une librairies de classes qui me permettrait de manipuler rapidement ces cartes.
Donc un jeu de cartes est constitué d'un ou plusieurs decks et une surface de jeu (et on peux même considérer que la surface de jeu est aussi un deck comme un autre ou les cartes sont disposés visibles, la main d'un joueur est un deck: ex: DeckJoueur1.)
Chaque deck contient une ou plusieurs cartes qui peuvent être visibles, cachées, accessible lorsqu'on clique dessus ou non. Les cartes bougeront d'un deck à un autre.

Ensuite, je pourrais utiliser des méthodes comme DeckJoueur1. affiche ou deck3.melange ou card15.movecardtodeck(nomdudeck)

Donc j'ai besoin d'instancier une classe CARD et une classe DECK comme j'ai pu le faire là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
class card:
    index=0
    def __init__(self):
        card.index+=1
        self.nom=""
        self.description=""
        self.facevisible=True
        self.enable=True
        self.visible=True
        self.deck=""
        self.faceimage=""
        self.backimage=""
    def flip(self):
        self.facevisible=not(self.facevisible)
class deck:
    def __init__(self)
    self.nom=""
    self.description=""
    self.index=""
    self.nbcards=0
 
# code principal
for i in range(10):
    carte=card()
Ma question est la suivante :
Dès le départ, je dois créer un deck PIOCHE qui contient supposons 3 cartes(carte1, carte2, carte3).
1) Comment faire au mieux pour créer un deck et créer en même temps les 3 cartes qui appartiendrait à ce deck ?
2) je n'arrive pas à créer dynamiquement les 3 cartes? (à part faire manuellement : carte1=card() puis carte2=card() puis carte3=card()
j'aurais bien aimer adressé une carte d'index i avec un truc du style : carte+str(i).visible=True (avec i=2, cela devrait me donner carte2.visible=True)
3) Comment finalement si j'agis sur un deck savoir les noms des instances de cartes qui y figurent (par exemple pour mélanger les cartes du deck PIOCHE : deckPIOCHE.melange() ?

J'espère que j'ai été clair dans mes intentions et merci pour votre aide.

Jean Marc