from turtle import * #============================================================================================================================================================================================================= #Auteurs : #MICHAUD Dorian #ETIEVANT Adrien #LEVEAU Tristan #DATE : Mai 2025 #Nom du jeu : Echec #Taches de chacun : # MICHAUD Dorian : # -Conditions mouvement (coups interdits, etc) # -Test de victoire # -Promotion dame # ETIEVANT Adrien : # -les classes des pions # -fonction mouvement # -les rocks # LEVEAU Tristan # -restart # -plateau turtle # -l'intéractivité #Il manque : # -en passant # -sauvegarde des parties hideturtle() speed(0) tour_blanc=True ini1="" ini2=0 coup_auto=True lettreini=0 nombreini=0 partieencoursblanc=True partieencoursnoir=True up() setup(1920,1080,0,0) x_de_base = 0 y_de_base = 0 #Création du plateau : class Plateau: def __init__(self): self.grid = (8,8) self.case_size = 100 self.x_de_depart = -679 self.y_de_depart = 450 self.a = [] self.b = [] self.c = [] self.d = [] self.e = [] self.f = [] self.g = [] self.h = [] interaction=False self.set_case_pose() self.draw_board() self.message() def set_case_pose(self): for i in range (1,9): self.a.append((self.x_de_depart,self.y_de_depart - (9-i)*self.case_size)) self.b.append((self.x_de_depart + self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.c.append((self.x_de_depart + 2*self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.d.append((self.x_de_depart + 3*self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.e.append((self.x_de_depart + 4*self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.f.append((self.x_de_depart + 5*self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.g.append((self.x_de_depart + 6*self.case_size,self.y_de_depart - (9-i)*self.case_size)) self.h.append((self.x_de_depart + 7*self.case_size,self.y_de_depart - (9-i)*self.case_size)) #case noir : def draw_case_brown(self): down() fillcolor('brown') begin_fill() for i in range(4): forward(self.case_size) right(90) setheading(0) end_fill() up() #case blanche : def draw_case(self): down() fillcolor('white') begin_fill() for i in range(4): forward(self.case_size) right(90) setheading(0) end_fill() up() def ligne_depart_blanc(self): global x_de_base, y_de_base for i in range(4) : goto(self.x_de_depart, self.y_de_depart) self.draw_case() self.x_de_depart = self.x_de_depart + self.case_size goto(self.x_de_depart, self.y_de_depart) self.draw_case_brown() self.x_de_depart = self.x_de_depart + self.case_size self.x_de_depart = x_de_base self.y_de_depart = self.y_de_depart - self.case_size def ligne_depart_marron(self): global x_de_base, y_de_base for i in range(4) : goto(self.x_de_depart, self.y_de_depart) self.draw_case_brown() self.x_de_depart = self.x_de_depart + self.case_size goto(self.x_de_depart, self.y_de_depart) self.draw_case() self.x_de_depart = self.x_de_depart + self.case_size self.x_de_depart = x_de_base self.y_de_depart = self.y_de_depart - self.case_size #dessin du plateau : def draw_board(self): goto(self.x_de_depart, self.y_de_depart) x_de_base = self.x_de_depart y_de_base = self.y_de_depart for i in range(4): self.x_de_depart = x_de_base self.ligne_depart_blanc() self.x_de_depart = x_de_base self.ligne_depart_marron() def message(self): goto(300, 400) write("Appuyez sur r pour réinitialiser", font=("Courier", 16, "bold")) #================================================================================================================================================================================================ # CREATION DES PIONS #================================================================================================================================================================================================ class Pion: def __init__(self,plateau,case_letter="",case_number=0,color = 1): self.name = 'pion' self.color = color if self.color != 0: self.unicode = "\u265F" else: self.unicode = "\u2659" self.co_case(plateau,case_letter,case_number) self.spawn() def co_case(self,plateau,case_letter,case_number): if case_letter == 'a': self.cord = plateau.a[case_number-1] elif case_letter == 'b': self.cord = plateau.b[case_number-1] elif case_letter == 'c': self.cord = plateau.c[case_number-1] elif case_letter == 'd': self.cord = plateau.d[case_number-1] elif case_letter == 'e': self.cord = plateau.e[case_number-1] elif case_letter == 'f': self.cord = plateau.f[case_number-1] elif case_letter == 'g': self.cord = plateau.g[case_number-1] elif case_letter == 'h': self.cord = plateau.h[case_number-1] def draw(self,x,y): up() goto(x + 10,y) down() write(self.unicode,font=('Arial Unicode MS',62)) def spawn(self): self.draw(self.cord[0],self.cord[1]) class Tour(Pion): def __init__(self,plateau,case_letter="",case_number=0,color = 0): self.name = 'tour' self.color = color if self.color != 0: self.unicode = "\u265C" else: self.unicode = "\u2656" self.co_case(plateau,case_letter,case_number) self.spawn() class Cavalier(Pion): def __init__(self,plateau,case_letter="",case_number=0,color = 0): self.color = color self.name = 'cavalier' if self.color != 0: self.unicode = "\u265E" else: self.unicode = "\u2658" self.co_case(plateau,case_letter,case_number) self.spawn() class Fou(Pion): def __init__(self,plateau,case_letter="",case_number=0,color = 0): self.name = 'fou' self.color = color if self.color != 0: self.unicode = "\u265D" else: self.unicode = "\u2657" self.co_case(plateau,case_letter,case_number) self.spawn() class Roi(Pion): def __init__(self,plateau,case_letter="",case_number=0,color = 0,mooved = False): self.mooved = mooved self.name = 'roi' self.color = color if self.color != 0: self.unicode = "\u265A" else: self.unicode = "\u2654" self.co_case(plateau,case_letter,case_number) self.spawn() class Reine(Pion): def __init__(self,plateau,case_letter="",case_number=0,color = 0): self.name = 'reine' self.color = color if self.color != 0: self.unicode = "\u265B" else: self.unicode = "\u2655" self.co_case(plateau,case_letter,case_number) self.spawn() #================================================================================================================================================================================================ # Programme principal du jeu #================================================================================================================================================================================================ class Jeu: def __init__(self): self.case = None self.plateau=Plateau() self.grille = [8*[0],8*[0],8*[0],8*[0],8*[0],8*[0],8*[0],8*[0],8*[0]] letter = 'abcdefgh' self.clicked = False for i in range(8): self.grille[7][i]=Pion(self.plateau,letter[i],7,1) self.grille[2][i]=Pion(self.plateau,letter[i],2,0) self.grille[1][0]=Tour(self.plateau,letter[0],1,0) self.grille[1][7]=Tour(self.plateau,letter[7],1,0) self.grille[8][0]=Tour(self.plateau,letter[0],8,1) self.grille[8][7]=Tour(self.plateau,letter[7],8,1) self.grille[1][1]=Cavalier(self.plateau,letter[1],1,0) self.grille[1][6]=Cavalier(self.plateau,letter[6],1,0) self.grille[8][1]=Cavalier(self.plateau,letter[1],8,1) self.grille[8][6]=Cavalier(self.plateau,letter[6],8,1) self.grille[1][2]=Fou(self.plateau,letter[2],1,0) self.grille[1][5]=Fou(self.plateau,letter[5],1,0) self.grille[8][2]=Fou(self.plateau,letter[2],8,1) self.grille[8][5]=Fou(self.plateau,letter[5],8,1) self.grille[1][4]=Roi(self.plateau,letter[4],1,0) self.grille[1][3]=Reine(self.plateau,letter[3],1,0) self.grille[8][4]=Roi(self.plateau,letter[4],8,1) self.grille[8][3]=Reine(self.plateau,letter[3],8,1) print(self.grille) if self.clicked == True: onscreenclick(self.deplacement) else: onscreenclick(self.case_click) onkeypress(self.restart,'r') self.tourdejeu() def test_victoire(self): global partieencoursblanc,partieencoursnoir partieencoursblanc=False partieencoursnoir=False for g in range(1,9) : for j in range(8) : if self.grille[g][j] != 0 : if self.grille[g][j].name == "roi" and self.grille[g][j].color==0: #vérifie si les rois sont toujours en vie et leur couleur partieencoursblanc=True elif self.grille[g][j].name == "roi" and self.grille[g][j].color==1: partieencoursnoir=True if partieencoursblanc==False : up() goto(400,-100) color("black") write("Les noirs ont gagnés", font=("Courier", 16, "bold")) elif partieencoursnoir==False : up() goto(400,-100) color("black") write("Les blancs ont gagnés", font=("Courier", 16, "bold")) def effacer(self): up() goto(300,0) down() for i in range(4): forward(400) right(90) up() def coup_interdit(self): up() goto(400,-100) write("COUP INTERDIT", font=("Courier", 16, "bold")) def tourdejeu(self): global tour_blanc up() goto(300,400) color("white") down() fillcolor('white') begin_fill() for i in range(4): forward(400) right(90) setheading(0) end_fill() up() if tour_blanc==True: goto(400,300) color("black") write("tour des blancs", font=("Courier", 16, "bold")) else : goto(400,300) color("black") write("tour des noirs", font=("Courier", 16, "bold")) def efface_case(self,lettre,nombre): if type(self.grille[lettre][nombre]) != type(0): up() goto(self.grille[lettre][nombre].cord[0],self.grille[lettre][nombre].cord[1] + 100) if lettre % 2 != 0: if nombre % 2 != 0: self.plateau.draw_case() else: self.plateau.draw_case_brown() else: if nombre % 2 != 0: self.plateau.draw_case_brown() else: self.plateau.draw_case() # INTERACTIVITE : def case_click(self,x,y): global ini1, ini2, coup_auto a=-679 b=-450 case="" lettres="abcdefgh" for i in range(8): if a+i*100=self.case[0]-2 and self.case[1]-1<=self.case[1]<=self.case[1]+1 : if self.case[1]!=case_moov[1] : if self.grille[case_moov[0]][case_moov[1]]==0 : if (self.grille[case_moov[0]][case_moov[1]]==self.grille[self.case[0]-1][self.case[1]+1] and self.grille[self.case[0]-1][self.case[1]+1]!=0) or (self.grille[case_moov[0]][case_moov[1]]==self.grille[self.case[0]-1][self.case[1]-1] and self.grille[self.case[0]-1][self.case[1]-1]!=0) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : print(self.case[0],self.case[1]) self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[case_moov[0]][case_moov[1]]==0 : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : if case_moov[0]>=self.case[0]-2 and self.case[1]-1<=self.case[1]<=self.case[1]+1 : if self.case[1]!=case_moov[1] : if self.grille[case_moov[0]][case_moov[1]]!=0 : if (self.grille[case_moov[0]][case_moov[1]]==self.grille[self.case[0]-1][self.case[1]+1] and self.grille[self.case[0]-1][self.case[1]+1]!=0) or (self.grille[case_moov[0]][case_moov[1]]==self.grille[self.case[0]-1][self.case[1]-1] and self.grille[self.case[0]-1][self.case[1]-1]!=0) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) if self.case[0]==2 : self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : print(self.case[0],self.case[1]) self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) if self.case[0]==2 : self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[case_moov[0]][case_moov[1]]==0 : self.efface_case(case_moov[0],case_moov[1]) if self.case[0]==2 : self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.grille[self.case[0]][self.case[1]]=Pion(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) #======================================================= # TOUR #======================================================= elif self.grille[self.case[0]][self.case[1]].name == 'tour': if case_moov[0]==self.case[0] and case_moov[1]==self.case[1] : self.grille[case_moov[0]][case_moov[1]]=Pion(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[self.case[0]][self.case[1]].color==0 and tour_blanc==True : if case_moov[0]==self.case[0] or case_moov[1]==self.case[1]: if case_moov[0]!=self.case[0]: if case_moov[0]>self.case[0]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]]!=0 and self.case[0]!=self.case[0]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i-1][self.case[1]]!=0: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : if case_moov[1]>self.case[1]: for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]+i]!=0 and self.case[1]!=self.case[1]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]-i-1]!=0: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('c') elif self.grille[self.case[0]][self.case[1]].color==1 and tour_blanc==False: if case_moov[0]==self.case[0] or case_moov[1]==self.case[1]: if case_moov[0]!=self.case[0]: if case_moov[0]>self.case[0]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i+1][self.case[1]]!=0 and self.case[0]!=self.case[0]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i-1][self.case[1]]!=0: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : if case_moov[1]>self.case[1]: for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]+i+1]!=0 and self.case[1]!=self.case[1]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]-i-1]!=0: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Tour(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : self.grille[self.case[0]][self.case[1]]=Tour(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) #======================================================= # CAVALIER #======================================================= elif self.grille[self.case[0]][self.case[1]].name == 'cavalier': if case_moov[0]==self.case[0] and case_moov[1]==self.case[1] : self.grille[case_moov[0]][case_moov[1]]=Cavalier(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[self.case[0]][self.case[1]].color==0 and tour_blanc==True : if (case_moov[0]==self.case[0]+2 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]+2 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]-2 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]-2 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]+2) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]-2) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+2) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+2) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Cavalier(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Cavalier(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Cavalier(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Cavalier(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) elif self.grille[self.case[0]][self.case[1]].color==1 and tour_blanc==False : if (case_moov[0]==self.case[0]+2 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]+2 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]-2 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]-2 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]+2) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]-2) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+2) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+2) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Cavalier(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Cavalier(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Cavalier(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Cavalier(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) #======================================================= # FOU #======================================================= elif self.grille[self.case[0]][self.case[1]].name == 'fou': if case_moov[0]==self.case[0] and case_moov[1]==self.case[1] : self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[self.case[0]][self.case[1]].color==0 and tour_blanc==True : coup_fou_check=False for i in range(8): if (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]+i) : if case_moov[0]>self.case[0] and case_moov[1]>self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]+i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]>self.case[0] and case_moov[1]self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]-i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') if coup_fou_check==False : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) elif self.grille[self.case[0]][self.case[1]].color==1 and tour_blanc==False : coup_fou_check=False for i in range(8): if (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]+i) : if case_moov[0]>self.case[0] and case_moov[1]>self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]+i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]>self.case[0] and case_moov[1]self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]-i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Fou(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') if coup_fou_check==False : self.grille[self.case[0]][self.case[1]]=Fou(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) #======================================================= # ROI #======================================================= elif self.grille[self.case[0]][self.case[1]].name == 'roi': if case_moov[0]==self.case[0] and case_moov[1]==self.case[1] : self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[self.case[0]][self.case[1]].color==0 and tour_blanc==True : if case_moov[0]==self.case[0]+1 or case_moov[1]==self.case[1]+1 or case_moov[0]==self.case[0]+1 or case_moov[1]==self.case[1]-1 or case_moov[0]==self.case[0]-1 or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]-1) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Roi(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 elif self.grille[self.case[0]][self.case[1]].mooved == False: #rook if case_moov[1] == self.case[1] - 2 and ( self.grille[self.case[0]][1] == 0 and self.grille[self.case[0]][2] == 0 and self.grille[self.case[0]][3] == 0) and self.grille[self.case[0]][0].name == 'tour': print('1') self.efface_case(1,0) self.grille[case_moov[0]][0] = 0 self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) self.grille[case_moov[0]][case_moov[1]+1]=Tour(self.plateau,'d',number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 elif case_moov[1] == self.case[1] + 2 and ( self.grille[self.case[0]][5] == 0 and self.grille[self.case[0]][6] == 0) and self.grille[self.case[0]][7].name == 'tour': print('2') self.efface_case(1,7) self.grille[case_moov[0]][7] = 0 self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) self.grille[case_moov[0]][case_moov[1]+1]=Tour(self.plateau,'f',number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Roi(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) elif self.grille[self.case[0]][self.case[1]].color==1 and tour_blanc==False : if case_moov[0]==self.case[0]+1 or case_moov[1]==self.case[1]+1 or case_moov[0]==self.case[0]+1 or case_moov[1]==self.case[1]-1 or case_moov[0]==self.case[0]-1 or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]+1) or (case_moov[0]==self.case[0]+1 and case_moov[1]==self.case[1]-1) or (case_moov[0]==self.case[0]-1 and case_moov[1]==self.case[1]-1) : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Roi(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 elif self.grille[self.case[0]][self.case[1]].mooved == False: #rook if case_moov[1] == self.case[1] - 2 and ( self.grille[self.case[0]][1] == 0 and self.grille[self.case[0]][2] == 0 and self.grille[self.case[0]][3] == 0) and self.grille[self.case[0]][0].name == 'tour': print('3') self.efface_case(8,0) self.grille[case_moov[0]][0] = 0 self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) self.grille[case_moov[0]][case_moov[1]+1]=Tour(self.plateau,'d',number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 elif case_moov[1] == self.case[1] + 2 and ( self.grille[self.case[0]][5] == 0 and self.grille[self.case[0]][6] == 0) and self.grille[self.case[0]][7].name == 'tour': print('4') self.efface_case(8,7) self.grille[case_moov[0]][7] = 0 self.grille[case_moov[0]][case_moov[1]]=Roi(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color,True) self.grille[case_moov[0]][case_moov[1]+1]=Tour(self.plateau,'f',number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 else : self.grille[self.case[0]][self.case[1]]=Roi(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) #======================================================= # DAME #======================================================= elif self.grille[self.case[0]][self.case[1]].name == 'reine': if case_moov[0]==self.case[0] and case_moov[1]==self.case[1] : self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) else : if self.grille[self.case[0]][self.case[1]].color==0 and tour_blanc==True : coup_fou_check=False for i in range(8): if (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0] and case_moov[1]==self.case[1]) or ((case_moov[0]==self.case[0] + i or case_moov[0]==self.case[0] - i) and case_moov[1] == self.case[1]) or ((case_moov[1]==self.case[1] + i or case_moov[1]==self.case[1] - i) and case_moov[0] == self.case[0]): if case_moov[0]>self.case[0] and case_moov[1]>self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]+i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]>self.case[0] and case_moov[1]self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]-i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]!=self.case[0]: if case_moov[0]>self.case[0]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]]!=0 and self.case[0]!=self.case[0]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]]!=0 and self.case[0]!=self.case[0]-i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[1]!=self.case[1]: if case_moov[1]>self.case[1]: for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]+i]!=0 and self.case[1]!=self.case[1]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]-i]!=0 and self.case[1]!=self.case[1]-i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=False self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') if coup_fou_check==False : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) elif self.grille[self.case[0]][self.case[1]].color==1 and tour_blanc==False : coup_fou_check=False for i in range(8): if (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]+i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]-i) or (case_moov[0]==self.case[0]-i and case_moov[1]==self.case[1]+i) or (case_moov[0]==self.case[0] and case_moov[1]==self.case[1]) or ((case_moov[0]==self.case[0] + i or case_moov[0]==self.case[0] - i) and case_moov[1] == self.case[1]) or ((case_moov[1]==self.case[1] + i or case_moov[1]==self.case[1] - i) and case_moov[0] == self.case[0]): if case_moov[0]>self.case[0] and case_moov[1]>self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]+i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]>self.case[0] and case_moov[1]self.case[1]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]+i]!=0 and (self.case[0]!=self.case[0]-i and self.case[1]!=self.case[1]+i): coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[0]!=self.case[0]: if case_moov[0]>self.case[0]: for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]+i][self.case[1]]!=0 and self.case[0]!=self.case[0]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[0]-self.case[0])): if self.grille[self.case[0]-i][self.case[1]]!=0 and self.case[0]!=self.case[0]-i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') elif case_moov[1]!=self.case[1]: if case_moov[1]>self.case[1]: for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]+i]!=0 and self.case[1]!=self.case[1]+i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') else : for i in range(abs(case_moov[1]-self.case[1])): if self.grille[self.case[0]][self.case[1]-i]!=0 and self.case[1]!=self.case[1]-i: coup_auto=False if coup_auto==True : if self.grille[case_moov[0]][case_moov[1]]!=0 : if self.grille[case_moov[0]][case_moov[1]].color!= self.grille[self.case[0]][self.case[1]].color: print(self.case[0],self.case[1],case_moov[0],case_moov[1]) self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('a') else : self.efface_case(case_moov[0],case_moov[1]) self.grille[case_moov[0]][case_moov[1]]=Reine(self.plateau,letter,number,self.grille[self.case[0]][self.case[1]].color) tour_blanc=True self.tourdejeu() self.test_victoire() self.grille[self.case[0]][self.case[1]] = 0 print(self.case[0],self.case[1],case_moov[0],case_moov[1]) coup_fou_check=True else : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) print('b') if coup_fou_check==False : self.grille[self.case[0]][self.case[1]]=Reine(self.plateau,ini1,ini2,self.grille[self.case[0]][self.case[1]].color) onscreenclick(self.case_click) def restart(self): for i in range(1,9): for j in range(8): if self.grille[i][j] != 0: up() goto(self.grille[i][j].cord[0],self.grille[i][j].cord[1] + 100) down() if i % 2 != 0: if j % 2 != 0: self.plateau.draw_case() else: self.plateau.draw_case_brown() else: if j % 2 != 0: self.plateau.draw_case_brown() else: self.plateau.draw_case() self.grille[i][j] = 0 letter = 'abcdefgh' for i in range(8): self.grille[7][i]=Pion(self.plateau,letter[i],7,1) self.grille[2][i]=Pion(self.plateau,letter[i],2,0) self.grille[1][0]=Tour(self.plateau,letter[0],1,0) self.grille[1][7]=Tour(self.plateau,letter[7],1,0) self.grille[8][0]=Tour(self.plateau,letter[0],8,1) self.grille[8][7]=Tour(self.plateau,letter[7],8,1) self.grille[1][1]=Cavalier(self.plateau,letter[1],1,0) self.grille[1][6]=Cavalier(self.plateau,letter[6],1,0) self.grille[8][1]=Cavalier(self.plateau,letter[1],8,1) self.grille[8][6]=Cavalier(self.plateau,letter[6],8,1) self.grille[1][2]=Fou(self.plateau,letter[2],1,0) self.grille[1][5]=Fou(self.plateau,letter[5],1,0) self.grille[8][2]=Fou(self.plateau,letter[2],8,1) self.grille[8][5]=Fou(self.plateau,letter[5],8,1) self.grille[1][4]=Roi(self.plateau,letter[4],1,0) self.grille[1][3]=Reine(self.plateau,letter[3],1,0) self.grille[8][4]=Roi(self.plateau,letter[4],8,1) self.grille[8][3]=Reine(self.plateau,letter[3],8,1) tour_blanc=True self.tourdejeu() #Lancement des classes : jeu=Jeu() listen() done()