from tkinter import* from random import* def sudoku1 (): # Les differentes grilles possible can.create_text(75,15,font="Times 15 bold",text="3") can.create_text(165,15,font="Times 15 bold",text="4") can.create_text(255,15,font="Times 15 bold",text="8") can.create_text(75,45,font="Times 15 bold",text="5") can.create_text(135,45,font="Times 15 bold",text="6") can.create_text(255,45,font="Times 15 bold",text="1") can.create_text(15,75,font="Times 15 bold",text="4") can.create_text(45,75,font="Times 15 bold",text="2") can.create_text(165,75,font="Times 15 bold",text="7") can.create_text(195,105,font="Times 15 bold",text="4") can.create_text(15,135,font="Times 15 bold",text="8") can.create_text(165,135,font="Times 15 bold",text="5") can.create_text(255,135,font="Times 15 bold",text="3") can.create_text(15,165,font="Times 15 bold",text="5") can.create_text(105,165,font="Times 15 bold",text="3") can.create_text(165,165,font="Times 15 bold",text="6") can.create_text(195,165,font="Times 15 bold",text="9") can.create_text(255,165,font="Times 15 bold",text="7") can.create_text(75,195,font="Times 15 bold",text="6") can.create_text(105,195,font="Times 15 bold",text="1") can.create_text(195,195,font="Times 15 bold",text="3") can.create_text(15,225,font="Times 15 bold",text="9") can.create_text(45,225,font="Times 15 bold",text="8") can.create_text(195,225,font="Times 15 bold",text="7") can.create_text(15,255,font="Times 15 bold",text="1") can.create_text(225,255,font="Times 15 bold",text="6") def sudoku2(): can.create_text(15,15,font="Times 15 bold",text="5") can.create_text(45,15,font="Times 15 bold",text="4") can.create_text(135,15,font="Times 15 bold",text="2") can.create_text(195,15,font="Times 15 bold",text="8") can.create_text(255,15,font="Times 15 bold",text="6") can.create_text(45,45,font="Times 15 bold",text="1") can.create_text(75,45,font="Times 15 bold",text="9") can.create_text(165,45,font="Times 15 bold",text="7") can.create_text(255,45,font="Times 15 bold",text="3") can.create_text(105,75,font="Times 15 bold",text="3") can.create_text(195,75,font="Times 15 bold",text="2") can.create_text(225,75,font="Times 15 bold",text="1") can.create_text(15,105,font="Times 15 bold",text="9") can.create_text(105,105,font="Times 15 bold",text="4") can.create_text(165,105,font="Times 15 bold",text="5") can.create_text(225,105,font="Times 15 bold",text="2") can.create_text(75,135,font="Times 15 bold",text="1") can.create_text(195,135,font="Times 15 bold",text="6") can.create_text(255,135,font="Times 15 bold",text="4") can.create_text(15,165,font="Times 15 bold",text="6") can.create_text(75,165,font="Times 15 bold",text="4") can.create_text(135,165,font="Times 15 bold",text="3") can.create_text(165,165,font="Times 15 bold",text="2") can.create_text(225,165,font="Times 15 bold",text="8") can.create_text(45,195,font="Times 15 bold",text="6") can.create_text(195,195,font="Times 15 bold",text="1") can.create_text(225,195,font="Times 15 bold",text="9") can.create_text(15,225,font="Times 15 bold",text="4") can.create_text(75,225,font="Times 15 bold",text="2") can.create_text(165,225,font="Times 15 bold",text="9") can.create_text(255,225,font="Times 15 bold",text="5") can.create_text(45,255,font="Times 15 bold",text="9") can.create_text(135,255,font="Times 15 bold",text="7") can.create_text(195,255,font="Times 15 bold",text="4") can.create_text(255,255,font="Times 15 bold",text="2") def sudoku3(): can.create_text(15,15,font="Times 15 bold",text="7") can.create_text(105,15,font="Times 15 bold",text="1") can.create_text(195,15,font="Times 15 bold",text="4") can.create_text(105,45,font="Times 15 bold",text="7") can.create_text(135,45,font="Times 15 bold",text="5") can.create_text(165,45,font="Times 15 bold",text="2") can.create_text(195,45,font="Times 15 bold",text="1") can.create_text(225,45,font="Times 15 bold",text="8") can.create_text(15,75,font="Times 15 bold",text="6") can.create_text(165,75,font="Times 15 bold",text="3") can.create_text(195,75,font="Times 15 bold",text="7") can.create_text(255,75,font="Times 15 bold",text="5") can.create_text(135,105,font="Times 15 bold",text="1") can.create_text(165,105,font="Times 15 bold",text="9") can.create_text(225,105,font="Times 15 bold",text="5") can.create_text(255,105,font="Times 15 bold",text="4") can.create_text(75,135,font="Times 15 bold",text="9") can.create_text(135,135,font="Times 15 bold",text="6") can.create_text(225,135,font="Times 15 bold",text="7") can.create_text(255,135,font="Times 15 bold",text="1") can.create_text(15,165,font="Times 15 bold",text="8") can.create_text(165,165,font="Times 15 bold",text="4") can.create_text(255,165,font="Times 15 bold",text="9") can.create_text(15,195,font="Times 15 bold",text="9") can.create_text(75,195,font="Times 15 bold",text="6") can.create_text(105,195,font="Times 15 bold",text="4") can.create_text(195,195,font="Times 15 bold",text="2") can.create_text(255,195,font="Times 15 bold",text="3") can.create_text(45,225,font="Times 15 bold",text="3") can.create_text(105,225,font="Times 15 bold",text="9") can.create_text(165,225,font="Times 15 bold",text="1") can.create_text(45,255,font="Times 15 bold",text="5") can.create_text(105,255,font="Times 15 bold",text="6") can.create_text(225,255,font="Times 15 bold",text="4") case=[[0,0,30,30,1,1,1],[30,0,60,30,2,1,2],[60,0,90,30,3,1,3], # Une liste avec toute les cases, les 4 premiers arguments sont les coordonées [90,0,120,30,4,1,4],[120,0,150,30,5,1,5],[150,0,180,30,6,1,6],[180,0,210,30,7,1,7], # le 5e est le numéro de la case [210,0,240,30,8,1,8],[240,0,270,30,9,1,9],[0,30,30,60,10,2,1],[30,30,60,60,11,2,2], # le 6e à la ligne et 7e : colone [60,30,90,60,12,2,3],[90,30,120,60,13,2,4],[120,30,150,60,14,2,5],[150,30,180,60,15,2,6],[180,30,210,60,16,2,7],[210,30,240,60,17,2,8],[240,30,270,60,18,2,9],[0,60,30,90,19,3,1],[30,60,60,90,20,3,2],[60,60,90,90,21,3,3], [90,60,120,90,22,3,4],[120,60,150,90,23,3,5],[150,60,180,90,24,3,6],[180,60,210,90,25,3,7],[210,60,240,90,26,3,8],[240,60,270,90,27,3,9],[0,90,30,120,28,4,1],[30,90,60,120,29,4,2],[60,90,90,120,30,4,3], [90,90,120,120,31,4,4],[120,90,150,120,32,4,5],[150,90,180,120,33,4,6],[180,90,210,120,34,4,7],[210,90,240,120,35,4,8],[240,90,270,120,36,4,9],[0,120,30,150,37,5,1],[30,120,60,150,38,5,2],[60,120,90,150,39,5,3], [90,120,120,150,40,5,4],[120,120,150,150,41,5,5],[150,120,180,150,42,5,6],[180,120,210,150,43,5,7],[210,120,240,150,44,5,8],[240,120,270,150,45,5,9],[0,150,30,180,46,6,1],[30,150,60,180,47,6,2],[60,150,90,180,48,6,3], [90,150,120,180,49,6,4],[120,150,150,180,50,6,5],[150,150,180,180,51,6,6],[180,150,210,180,52,6,7],[210,150,240,180,53,6,8],[240,150,270,180,54,6,9],[0,180,30,210,55,7,1],[30,180,60,210,56,7,2],[60,180,90,210,57,7,3], [90,180,120,210,58,7,4],[120,180,150,210,59,7,5],[150,180,180,210,60,7,6],[180,180,210,210,61,7,7],[210,180,240,210,62,7,8],[240,180,270,210,63,7,9],[0,210,30,240,64,8,1],[30,210,60,240,65,8,2],[60,210,90,240,66,8,3], [90,210,120,240,67,8,4],[120,210,150,240,68,8,5],[150,210,180,240,69,8,6],[180,210,210,240,70,8,7],[210,210,240,240,71,8,8],[240,210,270,240,72,8,9],[0,240,30,270,73,9,1],[30,240,60,270,74,9,2],[60,240,90,270,75,9,3], [90,240,120,270,76,9,4],[120,240,150,270,77,9,5],[150,240,180,270,78,9,6],[180,240,210,270,79,9,7],[210,240,240,270,80,9,8],[240,240,270,270,81,9,9]] ligne1= [case[1],case[2],case[3],case[4],case[5],case[6],case[7],case[8],case[9] ] ligne2= [case[10],case[11],case[12],case[13],case[14],case[15],case[16],case[17],case[18] ] ligne3= [case[19],case[20],case[21],case[22],case[23],case[24],case[25],case[26],case[27] ] ligne4= [case[28],case[29],case[30],case[31],case[32],case[33],case[34],case[35],case[36] ] ligne5= [case[37],case[38],case[39],case[40],case[41],case[42],case[43],case[44],case[45] ] ligne6= [case[46],case[47],case[48],case[49],case[50],case[51],case[52],case[53],case[54] ] ligne7= [case[55],case[56],case[57],case[58],case[59],case[60],case[61],case[62],case[63] ] ligne8= [case[64],case[65],case[66],case[67],case[68],case[69],case[70],case[71],case[72] ] ligne9= [case[73],case[74],case[75],case[76],case[77],case[78],case[79],case[80]] #,case[81] ] colone1=[case[1],case[10],case[19],case[28],case[37],case[46],case[55],case[64],case[73] ] colone2=[case[2],case[11],case[20],case[29],case[38],case[47],case[56],case[65],case[74] ] colone3=[case[3],case[12],case[21],case[30],case[39],case[48],case[57],case[66],case[75] ] colone4=[case[4],case[13],case[22],case[31],case[40],case[49],case[58],case[67],case[76] ] colone5=[case[5],case[14],case[23],case[32],case[41],case[50],case[59],case[68],case[77] ] colone6=[case[6],case[15],case[24],case[33],case[42],case[51],case[60],case[69],case[78] ] colone7=[case[7],case[16],case[25],case[34],case[43],case[52],case[61],case[70],case[79] ] colone8=[case[8],case[17],case[26],case[35],case[44],case[53],case[62],case[71],case[80] ] colone9=[case[9],case[18],case[27],case[36],case[45],case[54],case[63],case[72]] def damier(): # La grille ligne=0 y=0 while (ligne<10): if ligne%2==0: x=0 else : x=30 ligne_de_carres(x,y) y=y+30 ligne=ligne+1 def ligne_de_carres(x,y): # Interface while x<=300: x2=x+30 y2=y+30 can.create_rectangle(x,y,x2,y2,width=1) x=x+60 def ligne(): can.create_line(3,0,3,270,width=4) can.create_line(90,0,90,270,width=4) can.create_line(180,0,180,270,width=4) can.create_line(270,0,270,270,width=4) can.create_line(0,90,270,90,width=4) can.create_line(0,180,270,180,width=4) can.create_line(0,270,270,270,width=4) can.create_line(0,3,270,3,width=4) def pointeur(event): # Cette fonction récupère les coordonées du clic et affiche le les coordonées, la ligne ... chaine.configure(text='Clic détecté en X = '+str(event.x)+', Y = '+str(event.y)) global x1 global y1 x1=str(event.x) y1=str(event.y) x2=str(event.x) y2=str(event.y) for i in range (0,81): if case[i][0]', pointeur) can.pack() chaine=Label(fen1) chaine.pack() grille_sudoku() bou=Button(fen1, text="Quitter", command=fen1.destroy) bou.pack(side=LEFT) b1 = Button(fen1, text= " 1 ", command= bouton1) b2 = Button(fen1, text= " 2 ", command= bouton2) b3 = Button(fen1, text= " 3 ", command= bouton3) b4 = Button(fen1, text= " 4 ", command= bouton4) b5 = Button(fen1, text= " 5 ", command= bouton5) b6 = Button(fen1, text= " 6 ", command= bouton6) b7 = Button(fen1, text= " 7 ", command= bouton7) b8 = Button(fen1, text= " 8 ", command= bouton8) b9 = Button(fen1, text= " 9 ", command= bouton9) b1.pack(side=LEFT) b2.pack(side=LEFT) b3.pack(side=LEFT) b4.pack(side=LEFT) b5.pack(side=LEFT) b6.pack(side=LEFT) b7.pack(side=LEFT) b8.pack(side=LEFT) b9.pack(side=LEFT) ligne() #comp() lab=Label(fen1,text=" Saisir le numéro ") lab.pack() fen1.mainloop()