From 87b7ff54464d1c42500d57694651db3be85995a5 Mon Sep 17 00:00:00 2001 From: Alan Aguiar Date: Mon, 10 Feb 2014 00:05:47 +0000 Subject: compact select partida code using dicts --- diff --git a/src/game/SelectPartidaState.py b/src/game/SelectPartidaState.py index a643dca..99cddac 100644 --- a/src/game/SelectPartidaState.py +++ b/src/game/SelectPartidaState.py @@ -31,21 +31,20 @@ class CSelectPartidaState(CGameState): self.mBackground = Image.loadImage('assets/images/selectArea/background.jpg', False) CGame().setBackground(self.mBackground) - self.PARTIDA1_RECT = [(114, 254), (385, 625)] - self.PARTIDA2_RECT = [(464, 254), (735, 625)] - self.PARTIDA3_RECT = [(815, 254), (1086, 625)] + self.mRectP = {} + self.mRectP[0] = [(114, 254), (385, 625)] + self.mRectP[1] = [(464, 254), (735, 625)] + self.mRectP[2] = [(815, 254), (1086, 625)] self.mOverEnabled = True self.mToDel = None self.mFlag = FLAG - self.misEmptyP1 = True - self.misEmptyP2 = True - self.misEmptyP3 = True - - self.mP1_Stars = [] - self.mP2_Stars = [] - self.mP3_Stars = [] + self.mStarsP = {} + self.mIsEmptyP = {} + for i in range(3): + self.mStarsP[i] = [] + self.mIsEmptyP[i] = True self.mBsetted = False self.mNsetted = True @@ -60,37 +59,26 @@ class CSelectPartidaState(CGameState): delete = Image.loadImage('assets/images/selectPartida/delete.png') - self.mDeletePartida1 = CSprite(350, 240) - self.mDeletePartida1.setImage(delete) - - self.mDeletePartida2 = CSprite(700, 240) - self.mDeletePartida2.setImage(delete) - - self.mDeletePartida3 = CSprite(1050, 240) - self.mDeletePartida3.setImage(delete) - + self.mDeleteP = {} + for i in range(3): + dp = CSprite(350 + 350 * i, 240) + dp.setImage(delete) + self.mDeleteP[i] = dp + recuadro = Image.loadImage('assets/images/selectPartida/recuadro.png') - self.mPartida1 = CSprite(114, 254) - self.mPartida1.setImage(recuadro) - CGame().addChild(self.mPartida1) - + self.mPartida = {} + for i in range(3): + par = CSprite(114 + 350 * i, 254) + par.setImage(recuadro) + self.mPartida[i] = par + CGame().addChild(par) + border = Image.loadImage('assets/images/selectPartida/recuadro-interno2.png') - self.mBorderPartida1 = CSprite(100, 240) - self.mBorderPartida1.setImage(border) - - self.mPartida2 = CSprite(464, 254) - self.mPartida2.setImage(recuadro) - CGame().addChild(self.mPartida2) - - self.mBorderPartida2 = CSprite(450, 240) - self.mBorderPartida2.setImage(border) - - self.mPartida3 = CSprite(815, 254) - self.mPartida3.setImage(recuadro) - CGame().addChild(self.mPartida3) - - self.mBorderPartida3 = CSprite(800, 240) - self.mBorderPartida3.setImage(border) + self.mBorderP = {} + for i in range(3): + bor = CSprite(100 + 350 * i, 240) + bor.setImage(border) + self.mBorderP[i] = bor font28 = pygame.font.Font('assets/fonts/DejaVuSans.ttf', 28) @@ -106,32 +94,17 @@ class CSelectPartidaState(CGameState): CGame().addChild(self.mMessage) mes = unicode(_('Partida %s'), 'UTF-8') - self.mLabel1 = CLabel() - self.mLabel1.bgColor = (218, 224, 152) - self.mLabel1.fgColor = (0xFF, 0xFF, 0xFF) - self.mLabel1.font = font28 - self.mLabel1.center = (250, 300) - self.mLabel1.size = (150, 40) - self.mLabel1.text = mes % 1 - self.mLabel1._update_image() - - self.mLabel2 = CLabel() - self.mLabel2.bgColor = (218, 224, 152) - self.mLabel2.fgColor = (0xFF, 0xFF, 0xFF) - self.mLabel2.font = font28 - self.mLabel2.center = (600, 300) - self.mLabel2.size = (150, 40) - self.mLabel2.text = mes % 2 - self.mLabel2._update_image() - - self.mLabel3 = CLabel() - self.mLabel3.bgColor = (218, 224, 152) - self.mLabel3.fgColor = (0xFF, 0xFF, 0xFF) - self.mLabel3.font = font28 - self.mLabel3.center = (950, 300) - self.mLabel3.size = (150, 40) - self.mLabel3.text = mes % 3 - self.mLabel3._update_image() + self.mLabelP = {} + for i in range(3): + label = CLabel() + label.bgColor = (218, 224, 152) + label.fgColor = (0xFF, 0xFF, 0xFF) + label.font = font28 + label.center = (250 + 350 * i, 300) + label.size = (150, 40) + label.text = mes % 1 + label._update_image() + self.mLabelP[i] = label juan = Image.loadImage('assets/images/selectPartida/T-juan.png') elisa = Image.loadImage('assets/images/selectPartida/T-elisa.png') @@ -139,170 +112,52 @@ class CSelectPartidaState(CGameState): star2 = Image.loadImage('assets/images/hall/star2.png') mes = unicode(_('Partida vacĂ­a'), 'UTF-8') - self.mEmpty1 = CLabel() - self.mEmpty1.bgColor = (218, 224, 152) - self.mEmpty1.fgColor = (0xFF, 0xFF, 0xFF) - self.mEmpty1.font = font28 - self.mEmpty1.center = (250, 450) - self.mEmpty1.size = (200, 40) - self.mEmpty1.text = mes - self.mEmpty1._update_image() - - self.mEmpty2 = CLabel() - self.mEmpty2.bgColor = (218, 224, 152) - self.mEmpty2.fgColor = (0xFF, 0xFF, 0xFF) - self.mEmpty2.font = font28 - self.mEmpty2.center = (600, 450) - self.mEmpty2.size = (200, 40) - self.mEmpty2.text = mes - self.mEmpty2._update_image() - - self.mEmpty3 = CLabel() - self.mEmpty3.bgColor = (218, 224, 152) - self.mEmpty3.fgColor = (0xFF, 0xFF, 0xFF) - self.mEmpty3.font = font28 - self.mEmpty3.center = (950, 450) - self.mEmpty3.size = (200, 40) - self.mEmpty3.text = mes - self.mEmpty3._update_image() - - self.mChar1 = CSprite(200, 310) - self.mChar2 = CSprite(550, 310) - self.mChar3 = CSprite(900, 310) + self.mEmptyP = {} + for i in range(3): + empty = CLabel() + empty.bgColor = (218, 224, 152) + empty.fgColor = (0xFF, 0xFF, 0xFF) + empty.font = font28 + empty.center = (250 + 350 * i, 450) + empty.size = (200, 40) + empty.text = mes + empty._update_image() + self.mEmptyP[i] = empty + + self.mChar = {} + for i in range(3): + ch = CSprite(200 + 350 * i, 310) + self.mChar[i] = ch ########################################################## - - par = CGame().getPartida(1) - if (par == None) or par.isEmpty(): - CGame().addChild(self.mEmpty1) - else: - self.misEmptyP1 = False - CGame().addChild(self.mLabel1) - CGame().addChild(self.mDeletePartida1, 1) - if par.getCharacter() == 'Juan': - self.mChar1.setImage(juan) - else: - self.mChar1.setImage(elisa) - CGame().addChild(self.mChar1) - #gets the area 1 levels - a1 = par.getArea(1) - for i in range(6): - s = CSprite(150 + 30 * i, 510) - if a1[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP1_Stars.append(s) - CGame().addChild(s) - #gets the area 2 levels - a2 = par.getArea(2) - for i in range(6): - s = CSprite(150 + 30 * i, 540) - if a2[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP1_Stars.append(s) - CGame().addChild(s) - #gets the area 3 levels - a3 = par.getArea(3) - for i in range(6): - s = CSprite(150 + 30 * i, 570) - if a3[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP1_Stars.append(s) - CGame().addChild(s) - ########################################################## - par = CGame().getPartida(2) - if (par == None) or par.isEmpty(): - CGame().addChild(self.mEmpty2) - else: - self.misEmptyP2 = False - CGame().addChild(self.mLabel2) - CGame().addChild(self.mDeletePartida2, 1) - if par.getCharacter() == 'Juan': - self.mChar2.setImage(juan) + for parNum in range(3): + par = CGame().getPartida(parNum + 1) + if (par == None) or par.isEmpty(): + CGame().addChild(self.mEmptyP[parNum]) else: - self.mChar2.setImage(elisa) - CGame().addChild(self.mChar2) - #gets the area 1 levels - a1 = par.getArea(1) - for i in range(6): - s = CSprite(500 + 30 * i, 510) - if a1[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP2_Stars.append(s) - CGame().addChild(s) - #gets the area 2 levels - a2 = par.getArea(2) - for i in range(6): - s = CSprite(500 + 30 * i, 540) - if a2[i] == 0: - s.setImage(star1) + self.mIsEmptyP[parNum] = False + CGame().addChild(self.mLabelP[parNum]) + CGame().addChild(self.mDeleteP[parNum], 1) + if par.getCharacter() == 'Juan': + self.mChar[parNum].setImage(juan) else: - s.setImage(star2) - self.mP2_Stars.append(s) - CGame().addChild(s) - #gets the area 3 levels - a3 = par.getArea(3) - for i in range(6): - s = CSprite(500 + 30 * i, 570) - if a3[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP2_Stars.append(s) - CGame().addChild(s) + self.mChar[parNum].setImage(elisa) + CGame().addChild(self.mChar[parNum]) + #gets the area levels + inicio = 150 + parNum * 350 + for j in range(3): + a = par.getArea(j + 1) + for i in range(6): + s = CSprite(inicio + 30 * i, 510 + j * 30) + if a[i] == 0: + s.setImage(star1) + else: + s.setImage(star2) + self.mStarsP[parNum].append(s) + CGame().addChild(s) - ########################################################## - par = CGame().getPartida(3) - if (par == None) or par.isEmpty(): - CGame().addChild(self.mEmpty3) - else: - self.misEmptyP3 = False - CGame().addChild(self.mLabel3) - CGame().addChild(self.mDeletePartida3, 1) - if par.getCharacter() == 'Juan': - self.mChar3.setImage(juan) - else: - self.mChar3.setImage(elisa) - CGame().addChild(self.mChar3) - #gets the area 1 levels - a1 = par.getArea(1) - for i in range(6): - s = CSprite(850 + 30 * i, 510) - if a1[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP3_Stars.append(s) - CGame().addChild(s) - #gets the area 2 levels - a2 = par.getArea(2) - for i in range(6): - s = CSprite(850 + 30 * i, 540) - if a2[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP3_Stars.append(s) - CGame().addChild(s) - #gets the area 3 levels - a3 = par.getArea(3) - for i in range(6): - s = CSprite(850 + 30 * i, 570) - if a3[i] == 0: - s.setImage(star1) - else: - s.setImage(star2) - self.mP3_Stars.append(s) - CGame().addChild(s) - + ########################################################## alphasurface = pygame.Surface((1200,900)) alphasurface.convert() @@ -358,70 +213,35 @@ class CSelectPartidaState(CGameState): CGame().setState(ms) return - if self.mDeletePartida1.clicked(): - self.mToDel = 1 - self.addDialog() - return - - if self.mDeletePartida2.clicked(): - self.mToDel = 2 - self.addDialog() - return - - if self.mDeletePartida3.clicked(): - self.mToDel = 3 - self.addDialog() - return + for i in range(3): + if self.mDeleteP[i].clicked(): + self.mToDel = i + 1 + self.addDialog() + return if self.mOverEnabled: self.mFlag = self.mFlag - 1 if self.mFlag < 0: self.mFlag = 0 - - if self.mPartida1.clicked(): - if self.misEmptyP1: - ch = CSelectCharacterState() - else: - ch = CSelectAreaState() - CGame().setState(ch) - CGame().setCurrentPartida(1) - return - - elif self.mPartida2.clicked(): - if self.misEmptyP2: - ch = CSelectCharacterState() - else: - ch = CSelectAreaState() - CGame().setState(ch) - CGame().setCurrentPartida(2) - return - elif self.mPartida3.clicked(): - if self.misEmptyP3: - ch = CSelectCharacterState() - else: - ch = CSelectAreaState() - CGame().setState(ch) - CGame().setCurrentPartida(3) - return + for i in range(3): + if self.mPartida[i].clicked(): + if self.mIsEmptyP[i]: + ch = CSelectCharacterState() + else: + ch = CSelectAreaState() + CGame().setState(ch) + CGame().setCurrentPartida(i + 1) + return x = CMouse().getX() y = CMouse().getY() - if (CMath.pointInsideRectangle(x,y,self.PARTIDA1_RECT)): - CGame().addChild(self.mBorderPartida1) - else: - CGame().removeChild(self.mBorderPartida1) - - if (CMath.pointInsideRectangle(x,y,self.PARTIDA2_RECT)): - CGame().addChild(self.mBorderPartida2) - else: - CGame().removeChild(self.mBorderPartida2) - - if (CMath.pointInsideRectangle(x,y,self.PARTIDA3_RECT)): - CGame().addChild(self.mBorderPartida3) - else: - CGame().removeChild(self.mBorderPartida3) + for i in range(3): + if CMath.pointInsideRectangle(x, y, self.mRectP[i]): + CGame().addChild(self.mBorderP[i]) + else: + CGame().removeChild(self.mBorderP[i]) else: self.mFlag = self.mFlag + 1 @@ -445,30 +265,16 @@ class CSelectPartidaState(CGameState): self.mButtonTrue.set_bgColor(NORMAL_COLOR) p = Partida() CGame().setPartida(self.mToDel, p) - if self.mToDel == 1: - CGame().removeChild(self.mChar1) - CGame().removeChild(self.mLabel1) - CGame().removeChild(self.mDeletePartida1) - self.misEmptyP1 = True - for e in self.mP1_Stars: - CGame().removeChild(e) - CGame().addChild(self.mEmpty1) - elif self.mToDel == 2: - CGame().removeChild(self.mChar2) - CGame().removeChild(self.mLabel2) - CGame().removeChild(self.mDeletePartida2) - self.misEmptyP2 = True - for e in self.mP2_Stars: - CGame().removeChild(e) - CGame().addChild(self.mEmpty2) - elif self.mToDel == 3: - CGame().removeChild(self.mChar3) - CGame().removeChild(self.mLabel3) - CGame().removeChild(self.mDeletePartida3) - self.misEmptyP3 = True - for e in self.mP3_Stars: - CGame().removeChild(e) - CGame().addChild(self.mEmpty3) + parNum = self.mToDel - 1 + + CGame().removeChild(self.mChar[parNum]) + CGame().removeChild(self.mLabelP[parNum]) + CGame().removeChild(self.mDeleteP[parNum]) + self.mIsEmptyP[parNum] = True + for e in self.mStarsP[parNum]: + CGame().removeChild(e) + CGame().addChild(self.mEmptyP[parNum]) + self.mFlag = FLAG return @@ -490,40 +296,20 @@ class CSelectPartidaState(CGameState): self.mButtonBack = None CGame().removeChild(self.mMessage) self.mMessage = None - CGame().removeChild(self.mPartida1) - self.mPartida1 = None - CGame().removeChild(self.mBorderPartida1) - self.mBorderPartida1 = None - CGame().removeChild(self.mLabel1) - self.mLabel1 = None - CGame().removeChild(self.mChar1) - self.mChar1 = None - CGame().removeChild(self.mEmpty1) - CGame().removeChild(self.mPartida2) - self.mPartida2 = None - CGame().removeChild(self.mBorderPartida2) - self.mBorderPartida2 = None - CGame().removeChild(self.mLabel2) - self.mLabel2 = None - CGame().removeChild(self.mChar2) - self.mChar2 = None - CGame().removeChild(self.mEmpty2) - CGame().removeChild(self.mPartida3) - self.mPartida3 = None - CGame().removeChild(self.mBorderPartida3) - self.mBorderPartida3 = None - CGame().removeChild(self.mLabel3) - self.mLabel3 = None - CGame().removeChild(self.mChar3) - self.mChar3 = None - CGame().removeChild(self.mEmpty3) - for e in self.mP1_Stars: - CGame().removeChild(e) - for e in self.mP2_Stars: - CGame().removeChild(e) - for e in self.mP3_Stars: - CGame().removeChild(e) - CGame().removeChild(self.mDeletePartida1) - CGame().removeChild(self.mDeletePartida2) - CGame().removeChild(self.mDeletePartida3) + for i in range(3): + CGame().removeChild(self.mPartida[i]) + self.mPartida[i] = None + CGame().removeChild(self.mBorderP[i]) + self.mBorderP[i] = None + CGame().removeChild(self.mLabelP[i]) + self.mLabelP[i] = None + CGame().removeChild(self.mChar[i]) + self.mChar[i] = None + CGame().removeChild(self.mEmptyP[i]) + self.mEmptyP[i] = None + CGame().removeChild(self.mDeleteP[i]) + self.mDeleteP[i] = None + for e in self.mStarsP[i]: + CGame().removeChild(e) + self.mStarsP[i] = None self.mBackground = None -- cgit v0.9.1