Bonjour
Voila je rencontre un problème dit je ne comprends pas l'origine avec mon code. Théoriquement les bottons situes a cotés de la grille de sudoku permettant d'écrire dans la grille.
Mais depuis que j'ai codé une fenêtre, en guise de page d'accueil impossible d'écrire dans ma grille avec mes boutons.
Sans page d'accueil :
Maintenant avec mon semblant de page d'accueil :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 from tkinter import* from random import* ecriture=("comic sans ms",13) nbcase=4 case=100 x0,y0=9,9 chifre=[1,2,3,4] def fin (): fenetre.quit() fenetre.destroy() def grille(): for i in range(nbcase+1): Can.create_line(x0+case*i, y0,x0+case*i,y0 + nbcase*case) Can.create_line(x0, y0+case*i,x0+nbcase*case ,y0+case*i) def place_number(event): TexteC.delete("0.0",END)# on efface l'écriture précédente TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y)) a=(event.x)//100 #ici a est censé récupéré la position du clic pour ce qui est des abscisses b=(event.y)//100 #ici b fait la même chose que b mais pour lees ordonnées text = current Can.create_text(a,b,text=text) #ici la fonction est censé afficher le texte au coordonées a et b Can.create_text((a+0.5)*100+10,(b+0.5)*100+10,text=text) #ici on ajoute 0,5 à a et b pour centrer le nombre dans la case def jouer(event): global trouve [i,j]=correspond(event.x,event.y) if i in range(nb) and j in range (nb): # on ne fait rien si le click est hors grille Can.create_rectangle(x0 +c*j,y0+c*i,x0 +c*(j+1),y0+c*(i+1),fill=coul(i,j)) current = None def display(x): def wrap(): global current current = x return wrap fenetre=Tk() Cadre=Frame(fenetre) Texte1=Label(fenetre,text="Jeu du Sudoku",fg="red",font=ecriture) BouttonQuit=Button(fenetre,text="quitter", command=fin) BouttonJouer=Button(fenetre,text="jouer", command=grille) TexteC=Text(fenetre,height=25,width=25) Can=Canvas(Cadre,height=500,width=500,bg="white") Bouton1=Button(fenetre,text="1",command=display('1')) Texte1.grid(row=0,column=0) BouttonQuit.grid(row=50, column=100) Cadre.grid(row=1,column=0) Can.grid(row=2, column=0) BouttonJouer.grid(row=0, column=50) TexteC.grid(row=1, column=3) Bouton1.grid(row=45,column=49) Can.bind("<Button-1>",place_number) fenetre.mainloop()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 from tkinter import* from random import* ecriture=("comic sans ms",13) nbcase=4 case=100 x0,y0=9,9 chifre=[1,2,3,4] def zut(): ntm=Toplevel() def fin (): fenetre.quit() fenetre.destroy() def grille(): for i in range(nbcase+1): Can.create_line(x0+case*i, y0,x0+case*i,y0 + nbcase*case) Can.create_line(x0, y0+case*i,x0+nbcase*case ,y0+case*i) def place_number(event): TexteC.delete("0.0",END)# on efface l'écriture précédente TexteC.insert(END,"clic detecte en x="+str(event.x) + " et y = " + str(event.y)) a=(event.x)//100 #ici a est censé récupéré la position du clic pour ce qui est des abscisses b=(event.y)//100 #ici b fait la même chose que b mais pour lees ordonnées text = current Can.create_text(a,b,text=text) #ici la fonction est censé afficher le texte au coordonées a et b Can.create_text((a+0.5)*100+10,(b+0.5)*100+10,text=text) #ici on ajoute 0,5 à a et b pour centrer le nombre dans la case def jouer(event): global trouve [i,j]=correspond(event.x,event.y) if i in range(nb) and j in range (nb): # on ne fait rien si le click est hors grille Can.create_rectangle(x0 +c*j,y0+c*i,x0 +c*(j+1),y0+c*(i+1),fill=coul(i,j)) current = None def display(x): def wrap(): global current current = x return wrap Cadre=Frame(ntm) Texte1=Label(ntm,text="Jeu du Sudoku",fg="red",font=ecriture) BouttonQuit=Button(ntm,text="quitter", command=fin) BouttonJouer=Button(ntm,text="jouer", command=grille) TexteC=Text(ntm,height=25,width=25) Can=Canvas(ntm,height=500,width=500,bg="white") Bouton1=Button(ntm,text="1",command=display('1')) Bouton2=Button(ntm,text="2",command=display('2')) Bouton3=Button(ntm,text="3",command=display('3')) Bouton4=Button(ntm,text="4",command=display('4')) Texte1.grid(row=0,column=0) BouttonQuit.grid(row=50, column=100) Cadre.grid(row=1,column=0) Can.grid(row=1, column=0) BouttonJouer.grid(row=0, column=50) TexteC.grid(row=1, column=3) Bouton1.grid(row=45, column=49) Bouton2.grid(row=45, column=48) Bouton3.grid(row=45, column=47) Bouton4.grid(row=45, column=46) Can.bind("<Button-1>",place_number) fenetre=Tk() Texte=Label(fenetre,text="Bienvenue dans le jeu de sudoku",fg="red") Texte.grid(row=0,column=3) Boutoniveau1=Button(fenetre,text="Niveau 1",command=zut) Boutoniveau1.grid(row=2,column=3) fenetre.mainloop()
Partager