Bonjours,
J'expose mon problème:
J'ai une classe joueur qui fait des paris, un pari étant une nouvelle instance d'une class Pari.
Lorsque mon programme vient a checké quels paris sont gagant ou perdant j'aimerai les del.
Le problème étant que je ne sais pas comment delete toutes les instances d'une class.
classes.py :
game.py :
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
26
27
28 class Bet: bets = [] def __init__(self, player, case, value, IDPlayer): try: IDPlayer.tellMoney() >= value except: print(player + " n'as pas assez d'argent") else: Bet.bets.append(self) self.__IDPlayer = IDPlayer self.player = player self.__value = value self.__case = case IDPlayer.popMoney(-value) #print('__init__(%s)' % self) def checkWin(self, ballpos): if self.__case == ballpos : self.__IDPlayer.balanceAffection(self.__value*6) print(str(ballpos) + " " + self.player + " recupère 6 fois sa mise : "+str(self.__value * 6)) else: print(self.player + "Perd sa mise misé sur la case " + str(self.__case)) def __del__(self): print('__del__(%s)' % self)
J'ai essayé plusieurs choses comme mettre un del self a la fin de Bet.checkWin() ca n'as pas marché. de même dans le for de la fct° checkWin(ballpos) j'ai essayé un del (b) pareil sans resultats. Les paris restes présent sur plusieurs tour de jeu ce qui est un peu génant. Je suis un peu perdu. En plus je sais bien que c'est pas très propre comme code. Il faudrait que je fasse hériter la class Bet de la classe player ? Parceque il est possible de faire appel a la methode d'affectation de la balance du joueur n'importe ou ?
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
26
27
28
29
30
31
32
33
34 from classes import * import random as rd TestPlayer1 = AIPlayer() def betTime(): for p in AIPlayer.playersID: AIPlayer.makeBet(p) def checkWin(ballpos): for b in Bet.bets: Bet.checkWin(b, ballpos) def giveInformationToPlayers(ballpos): AIPlayer.ballpos = ballpos for t in range (2): #clear all bets print("Nouveau lancé") betTime() #print(TestPlayer1.tellMoney()) ballpos = rd.randint(0,6) print("La balle s'arrete en " + str(ballpos)) giveInformationToPlayers(ballpos) checkWin(ballpos)
Enfin ce topic est surtout pour essayé de résoudre le problème du del de toutes les instances d'une classe.
Cordialement, Jean.
Partager