diff --git a/S1/Echecs/logique.py b/S1/Echecs/logique.py index 59074cd..9e921c3 100644 --- a/S1/Echecs/logique.py +++ b/S1/Echecs/logique.py @@ -215,8 +215,7 @@ class LogiqueDames(Logique): """ test = self.deplPossible(x1, y1, x2, y2) if test == self.MVT_OK: - # TODO Vérifier le souffler n'est pas jouer - if False: + if self.sautEstPossibleTous(): return self.MVT_SOUFFLER else: return test @@ -242,10 +241,21 @@ class LogiqueDames(Logique): 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: + if self.deplPossible(x1, y1, x2, y2) == self.MVT_SAUT: tableau.append([x2, y2]) return tableau + def sautEstPossibleTous(self): + """ + Indique si le joueur peut faire un saut. + """ + for x in range(0, self.CASES_COTE): + for y in range(0, self.CASES_COTE): + if self.aSonTour(self.grille[x][y]): + if len(self.sautsPossibles(x, y)) > 0: + return True + return False + def mvtsPossibles(self, x1, y1): """ Donne la liste des mouvements possible pour la pièce donnée. @@ -258,18 +268,6 @@ class LogiqueDames(Logique): tableau.append([x2, y2]) return tableau - def dPieceSansSouffler(self, x1, y1, x2, y2): - """ - Déplace la pièce aux coordonnées 1 données aux coordonnées 2 données. - Ne vérifie pas le "Souffler n'est pas jouer". - (Est utilisé dans pour cette détection) - """ - test = self.deplPossible(x1, y1, x2, y2) - if test == self.MVT_OK: - self.grille[x1][y1], self.grille[x2][ - y2] = self.PCE_VIDE, self.grille[x1][y1] - self.joueur = not self.joueur - def vPartieFinie(self): """ Vérifie si le joueur actuel ne peut plus jouer.