#Avitsara Zafimamy Jary from Tkinter import* nb= 9# nombre de cases (grille carree) c=40 # dimension d'une case supposee carree x0,y0=10,10 #coordonnees du point en haut à  gauche nombre=["1","2","3","4","5","6","7","8","9"] ########################################################################## #Partie fonctions def grille():# Fonction permettant l'affichage de la grille for i in range(nb+1): can.create_line(x0+c*i, y0,x0+c*i,y0 + nb*c) can.create_line(x0, y0+c*i,x0+nb*c ,y0+c*i) b2.configure(state=DISABLED) if i==3 or i==6 or i==9: can.create_line(x0, y0+c*i,x0+nb*c ,y0+c*i,width=5) can.create_line(x0+c*i, y0,x0+c*i,y0 + nb*c,width=5) def new():# Fonction permettant de tracer la grille can.pack_forget() can.delete("0.0",END) can.delete(ALL) grille() def monquitter():# Permet de quitter la fonction fen.quit() fen.destroy() def correspond(x,y): return (y-y0)/c, (x-x0)/c#Permet de faire correspondre le clic dans le canvas et le clic dans la case def jouer(event):# Pemet de récupérer le chiffre que le joueur va entrer et de l'afficher [i,j]=correspond(event.x,event.y) chiffre=e2.get() if chiffre in nombre:# Affiche uniquement les chiffres entre 1 et 9 can.create_text (y0 +c*(j+.5),x0+c*(i+.5),text=str(chiffre),font=("helvetica",15,"bold"),fill=coul(i,j)) else: return False def coul(i,j): [i,j]=chiffre d= max(abs(x-i),abs(y-j)) if d== 0: return "red" elif d==1: return "orange" elif d==2: return "yellow" elif d==3: return "green" else: return "blue" ################################################################################# #Partie tkinter fen=Tk() can=Canvas(fen,height=370,width=370,bg="white") can.grid(row=1,column=3) b2=Button(fen,text="demarrer une partie",command=new) b2.grid(row=2,column=3) b1=Button(fen,text="Quitter",command=monquitter) b1.grid(row=7,column=3) b3=Label(fen,text="où voulez-vous saisir votre chiffre?") b4=Label(fen,text="saisissez votre chiffre") e2=Entry(fen) b3.grid(row=3,column=3) b4.grid(row=5,column=3) e2.grid(row=6,column=3) can.bind("",jouer) t=Text(fen ,height=1,width=5,bg="light grey",fg="red",font=("courier",30,"bold")) fen.mainloop()