[Echecs] Dame : Ajout de la rafle
This commit is contained in:
parent
f32ce16e71
commit
80a831bd38
|
@ -116,6 +116,7 @@ class LogiqueDames(Logique):
|
||||||
"""
|
"""
|
||||||
Logique.__init__(self)
|
Logique.__init__(self)
|
||||||
self.remplirGrille()
|
self.remplirGrille()
|
||||||
|
self.rafle = False
|
||||||
|
|
||||||
def remplirGrille(self):
|
def remplirGrille(self):
|
||||||
"""
|
"""
|
||||||
|
@ -124,17 +125,17 @@ class LogiqueDames(Logique):
|
||||||
for y in range(0, 3+1):
|
for y in range(0, 3+1):
|
||||||
for x in range(0, self.CASES_COTE):
|
for x in range(0, self.CASES_COTE):
|
||||||
if not self.eCaseBlanche(x, y):
|
if not self.eCaseBlanche(x, y):
|
||||||
self.grille[x][y] = self.DECALAGE_NOIRS + self.PCE_DAME
|
self.grille[x][y] = self.DECALAGE_NOIRS + self.PCE_PION
|
||||||
for y in range(self.CASES_COTE-3-1, self.CASES_COTE):
|
for y in range(self.CASES_COTE-3-1, self.CASES_COTE):
|
||||||
for x in range(0, self.CASES_COTE):
|
for x in range(0, self.CASES_COTE):
|
||||||
if not self.eCaseBlanche(x, y):
|
if not self.eCaseBlanche(x, y):
|
||||||
self.grille[x][y] = self.DECALAGE_BLANCS + self.PCE_DAME
|
self.grille[x][y] = self.DECALAGE_BLANCS + self.PCE_PION
|
||||||
|
|
||||||
def deplPossiblePion(self, x1, y1, x2, y2):
|
def deplPossiblePion(self, x1, y1, x2, y2):
|
||||||
"""
|
"""
|
||||||
Vérifie si le déplacement est possible pour un pion.
|
Vérifie si le déplacement est possible pour un pion.
|
||||||
"""
|
"""
|
||||||
if abs(x2-x1) == 1 and abs(y2-y1) == 1:
|
if abs(x2-x1) == 1 and abs(y2-y1) == 1 and not self.rafle:
|
||||||
if (self.joueur == self.BLANC and y1 > y2) or (self.joueur == self.NOIR and y1 < y2):
|
if (self.joueur == self.BLANC and y1 > y2) or (self.joueur == self.NOIR and y1 < y2):
|
||||||
return self.MVT_OK
|
return self.MVT_OK
|
||||||
else:
|
else:
|
||||||
|
@ -169,10 +170,13 @@ class LogiqueDames(Logique):
|
||||||
y += sensY
|
y += sensY
|
||||||
if self.ePiece(self.grille[x][y]):
|
if self.ePiece(self.grille[x][y]):
|
||||||
if dist == distTot - 1 and not self.aSonTour(self.grille[x][y]):
|
if dist == distTot - 1 and not self.aSonTour(self.grille[x][y]):
|
||||||
return self.MVT_SAUT # Saut
|
return self.MVT_SAUT
|
||||||
else:
|
else:
|
||||||
return self.MVT_OBSTRUCTION
|
return self.MVT_OBSTRUCTION
|
||||||
return self.MVT_OK # Vide
|
if self.rafle:
|
||||||
|
return self.MVT_SOUFFLER
|
||||||
|
else:
|
||||||
|
return self.MVT_OK
|
||||||
else:
|
else:
|
||||||
return self.MVT_N_AUTORISE
|
return self.MVT_N_AUTORISE
|
||||||
|
|
||||||
|
@ -231,6 +235,17 @@ class LogiqueDames(Logique):
|
||||||
tableau.append([x2, y2])
|
tableau.append([x2, y2])
|
||||||
return tableau
|
return tableau
|
||||||
|
|
||||||
|
def sautsPossibles(self, x1, y1):
|
||||||
|
"""
|
||||||
|
Donne la liste des mouvements possible pour la pièce donnée.
|
||||||
|
"""
|
||||||
|
tableau = []
|
||||||
|
for x2 in range(0, self.CASES_COTE):
|
||||||
|
for y2 in range(0, self.CASES_COTE):
|
||||||
|
if self.mvtPossible(x1, y1, x2, y2) == self.MVT_SAUT:
|
||||||
|
tableau.append([x2, y2])
|
||||||
|
return tableau
|
||||||
|
|
||||||
def mvtsPossibles(self, x1, y1):
|
def mvtsPossibles(self, x1, y1):
|
||||||
"""
|
"""
|
||||||
Donne la liste des mouvements possible pour la pièce donnée.
|
Donne la liste des mouvements possible pour la pièce donnée.
|
||||||
|
@ -289,6 +304,10 @@ class LogiqueDames(Logique):
|
||||||
retour['valide'] = True
|
retour['valide'] = True
|
||||||
retour['deplacer'].append([x1, y1, x2, y2])
|
retour['deplacer'].append([x1, y1, x2, y2])
|
||||||
self.grille[x1][y1], self.grille[x2][y2] = self.PCE_VIDE, self.grille[x1][y1]
|
self.grille[x1][y1], self.grille[x2][y2] = self.PCE_VIDE, self.grille[x1][y1]
|
||||||
|
if test == self.MVT_SAUT and len(self.sautsPossibles(x2, y2)) > 0:
|
||||||
|
self.rafle = True
|
||||||
|
else:
|
||||||
|
self.rafle = False
|
||||||
self.joueur = not self.joueur
|
self.joueur = not self.joueur
|
||||||
self.vPartieFinie()
|
self.vPartieFinie()
|
||||||
return retour
|
return retour
|
||||||
|
|
Reference in a new issue