cosi arf | c'etait ce qui m'est venu a l'idée, seulement il me semble que vu ce que g fais, ce n'est pas le cas
g une classe piece :
Code :
- class Piece:
-
- def __init__(self):
-
- self.number=randint(0,6)
- self.currentposition=0
- self.color="red"
-
- self.matrix=[[False,False,False,False],[False,False,False,False],[False,False,False,False],[False,False,False,False]]
- def makesamepiece(self,p):
- p.currentposition=self.currentposition
- p.number=self.number
- p.constructpiece()
- def constructpiece(self):
- if self.number==0:
- self.color="red"
- self.matrix[1][1]=True
- self.matrix[1][2]=True
- self.matrix[2][1]=True
- self.matrix[2][2]=True
-
- if self.number==1:
- self.color="yellow"
- self.matrix[1]=[True,True,True,True]
- if self.number==2:
- self.color="orange"
- self.matrix[1][1]=True
- self.matrix[1][2]=True
- self.matrix[2][2]=True
- self.matrix[2][3]=True
- if self.number==3:
- self.color="pink"
- self.matrix[1][1]=True
- self.matrix[1][2]=True
- self.matrix[2][0]=True
- self.matrix[2][1]=True
-
- if self.number==4:
- self.color="green"
- self.matrix[1][3]=True
- self.matrix[2][1]=True
- self.matrix[2][2]=True
- self.matrix[2][3]=True
- if self.number==5:
- self.color="purple"
- self.matrix[1][0]=True
- self.matrix[2][0]=True
- self.matrix[2][1]=True
- self.matrix[2][2]=True
- if self.number==6:
- self.color="blue"
- self.matrix[1][1]=True
- self.matrix[2][0]=True
- self.matrix[2][1]=True
- self.matrix[2][2]=True
- etc...
|
dont je crée 3 instances dans une fonction appelée seulement a l'initialisation d'une partie
Code :
- previousP=Piece()
- currentP=Piece()
- currentP.makesamepiece(previousP)
- nextP=Piece()
- nextP.constructpiece()
- currentP.constructpiece()
|
previousP me sert en gros pour effacer la piece du canvas tel qu'elle etait avant le dernier mouvement currentP est la piece actuellement affichée
nextP est la piece a venir (visible dans un autre canvas a coté)
previousP est modifiée a chaque mouvement (ou rotation de la piece):
Code :
- previousP.currentposition=currentP.currentposition
- for i in range(0,4):
- for j in range(0,4):
- previousP.matrix[i][j]=currentP.matrix[i][j]
|
enfin quand ma piece est "posée", je mets a jour les différentes valeurs de mes instances de pieces:
Code :
- currentP=nextP
- nextP=Piece()
- nextP.constructpiece()
|
bon a priori je ne crée pas de nouvelles instances. ce que g verifié avec des print previousP,currentP,nextP réguliers et ou ca m'affiche toujours les 3 mêmes adresses mémoires Message édité par cosi le 18-10-2006 à 00:53:03
|