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
| from tkinter import messagebox
import tkinter as tk
def About () : messagebox.showinfo (title="A propos",)
def Comment_jouer () : messagebox.showinfo ("Comment jouer ?", "Le but du jeu est de remplir ces cases avec des chiffres allant de 1 à 9 en veillant toujours à ce qu'un même chiffre ne figure qu'une seule fois par colonne, une seule fois par ligne, et une seule fois par carré de neuf cases.")
def create_lines_vert(canvas):
scale = 480/9
for i in range(0, 10):
if (i!=4) and (i!=7) :
canvas.create_line(i*scale, 0, i*scale, 580, width =1);
else :
canvas.create_line(i*scale, 0, i*scale, 580, width =3);
def create_lines_hor (canvas) :
scale = 480/9
for j in range (0, 10) :
if (j!=4) and (j!=7) :
canvas.create_line(0, j*scale, 580, j*scale, width = 1);
else :
canvas.create_line (0, j*scale, 580, j*scale, width = 3) ;
def create_menu(app):
menu = tk.Menu(app)
m = tk.Menu(menu)
m.add_command(label="Quitter le jeu", command=app.destroy)
menu.add_cascade (label= "Partie", menu=m)
menu.add_command(label="Comment jouer", command= Comment_jouer)
menu.add_command(label=" A propos", command = About)
app['menu'] = menu
l_case = 450/9
h_case = 450/9
def click( self, event ):
self.clickPosition( event.x, event.y )
l_case = 450/9
h_case = 450/9
case_x= (event.x) / l_case
case_y= (event.y) / h_case
centre_case_x= (case_x - 1) * l_case + l_case /2;
centre_case_y= (case_y -1) * h_case +h_case /2;
if (case_x==0) :
centre_case_x = l_case /2
else :
centre_case_x = (case_x-1)*l_case + l_case/2;
if (case_y==0) :
centre_case_y = h_case /2
else :
centre_case_y = (case_y -1) * h_case + h_case /2 ;
def ecrire (event) :
grid.create_text ( click, fill=text_color, text='', font=canvas.font )
if __name__ == '__main__':
app = tk.Tk()
app.title(" Sudoku ")
create_menu(app)
grid = tk.Canvas(app, width=450, height=450, bg='SaddleBrown', bd = 55, relief="ridge")
grid.pack()
create_lines_vert(grid)
create_lines_hor (grid)
app.mainloop() |