from tkinter import * from random import randint from threading import Thread from time import sleep from winsound import * class Visage: def __init__(self,uncolor,uncanvas,unx,uny,uncoef): self.c=uncanvas self.color=uncolor self.x=unx self.y=uny self.coef=uncoef ###################Création des yeux############# eye_y=20 self.eye_1=self.c.create_oval(self.x+10+self.coef, self.y+eye_y, self.x+30+self.coef, self.y+eye_y+20, fill=self.color) eye_2_x=40 self.eye_2=self.c.create_oval(self.x+eye_2_x+self.coef, self.y+eye_y, self.x+eye_2_x+20+self.coef, self.y+eye_y+20, fill=self.color) ###################Création du visage et bouche############# self.vis=self.c.create_oval(self.x+self.coef, self.y, self.x+70+self.coef, self.y+70) self.sourir=self.c.create_arc(self.x+10+self.coef, self.y+30, self.x+60+self.coef, self.y+60, start=0, extent=-180, style=ARC, width=3) def change_color(self,color): self.c.itemconfigure(self.sourir,outline=color) self.c.itemconfigure(self.vis,outline=color) self.c.itemconfigure(self.eye_1,outline=color) self.c.itemconfigure(self.eye_2,outline=color) class Idiot: def __init__(self,uncolor,uncanvas,unx,uny): self.x=unx self.y=uny self.color=uncolor self.c=uncanvas self.fond=self.c.create_rectangle(0,0,455,605) self.idiot_text=self.c.create_text((225, 15), fill="#000000", text="You are an idiot",font= 'Impact 20') ##########################Création des trois visages################### self.idiot_1=Visage(self.color,self.c,self.x,self.y,0) self.idiot_2=Visage(self.color,self.c,self.x,self.y,150) self.idiot_3=Visage(self.color,self.c,self.x,self.y,300) def change_color(self,color): if color=="#ffffff": self.c.configure(bg="#000000") else: self.c.configure(bg="#ffffff") self.c.itemconfigure(self.idiot_text ,fill=color) self.idiot_1.change_color(color) self.idiot_2.change_color(color) self.idiot_3.change_color(color) class Anim_idiot(Thread): def __init__(self,vis): Thread.__init__(self) self.idiot=vis def run(self): while True: self.idiot.change_color("#000000") sleep(0.5) self.idiot.change_color("#ffffff") sleep(0.5) def gen_password(): lst_c_sp="""&àç_-èé"*§@µ^¨$£=,.œ""" lst_let="azertyuiopqsdfghjkwlxmcvbn" lst_numb="1230456789" nb_c_sp_mp=nb_c_sp.get() nb_maj_mp=nb_maj.get() nb_chif_mp=nb_chif.get() nb_car_mp=nb_car.get() nb_let_mp=nb_car_mp-(nb_c_sp_mp+nb_maj_mp + nb_chif_mp) password="" lst_car_tir=[0,1,2,3] #C'est moche. Regarde les caractère non utilisé if nb_c_sp_mp==0: lst_car_tir.remove(0) if nb_maj_mp==0: lst_car_tir.remove(1) if nb_chif_mp==0: lst_car_tir.remove(2) if nb_let_mp ==0: lst_car_tir.remove(3) if nb_c_sp_mp+nb_maj_mp + nb_chif_mp<=nb_car_mp: while nb_chif_mp!=0 or nb_c_sp_mp!=0 or nb_chif_mp !=0 or nb_car_mp!=0: car_aj=lst_car_tir[randint(0,len(lst_car_tir)-1)]#prend un caractère aux hasard parmi ceux réstant if car_aj==0 and nb_c_sp_mp>0: password=password+lst_c_sp[randint(0,len(lst_c_sp)-1)] nb_c_sp_mp=nb_c_sp_mp-1 nb_car_mp=nb_car_mp-1 if nb_c_sp_mp==0: lst_car_tir.remove(0) elif car_aj==1 and nb_maj_mp>0: password=password+lst_let[randint(0,25)].upper() nb_maj_mp=nb_maj_mp-1 nb_car_mp=nb_car_mp-1 if nb_maj_mp==0: lst_car_tir.remove(1) elif car_aj==2 and nb_chif_mp>0: password=password+lst_numb[randint(0,9)] nb_chif_mp=nb_chif_mp-1 nb_car_mp=nb_car_mp-1 if nb_chif_mp==0: lst_car_tir.remove(2) elif car_aj==3 and nb_let_mp>0: password=password+lst_let[randint(0,25)] nb_let_mp=nb_let_mp-1 nb_car_mp=nb_car_mp-1 if nb_let_mp==0: lst_car_tir.remove(3) lab_mot_de_passe.config(text="Mot de passe:"+password) else: you_are_an_idiot() def mot_de_passe_hash(password): fich_pasw=open("Fichier_de_mot_de_passe_hasher.txt","w") fich_pasw.write(str(hash(password))) def you_are_an_idiot(): fenetre_idiot=Tk() fenetre_idiot.title("You are an idiot") fenetre_idiot.protocol("WM_DELETE_WINDOW",double) fenetre_idiot.grid() idiot_can=Canvas(fenetre_idiot, width=450, height=100,bg="#ffffff") idiot_can.grid(row=1,column=1) idiot_var=Idiot("#000000",idiot_can,20,30) idiot_anime=Anim_idiot(idiot_var) idiot_anime.start() fenetre_idiot.mainloop() def double(): you_are_an_idiot() you_are_an_idiot() fenetre=Tk() fenetre.title("Créateur de mot de passe") fenetre.configure(bg = "#3356ff") fenetre.grid() ###########Nombre de majuscule############## lab_nb_maj=Label(text="Nombre de majuscule",bg="#3356ff") lab_nb_maj.grid(row=1,column=1,padx=3) nb_maj=IntVar() entry_nb_maj=Entry(textvariable=nb_maj,bd=5) entry_nb_maj.grid(row=2,column=1,padx=3) #######Nombre de caractère speciaux######### lab_nb_c_sp=Label(text="Nombre de caractères spéciaux",bg="#3356ff") lab_nb_c_sp.grid(row=1,column=2,padx=3) nb_c_sp=IntVar() entry_nb_c_sp=Entry(textvariable=nb_c_sp,bd=5) entry_nb_c_sp.grid(row=2,column=2,padx=3) ##############Nombre de chiffre############# lab_nb_chif=Label(text="Nombre de chiffres",bg="#3356ff") lab_nb_chif.grid(row=1,column=3,padx=3) nb_chif=IntVar() entry_nb_chif=Entry(textvariable=nb_chif,bd=5) entry_nb_chif.grid(row=2,column=3,padx=3) #############Nombre de caractère########### lab_nb_car=Label(text="Nombre de caractères",bg="#3356ff") lab_nb_car.grid(row=1,column=4,padx=5) nb_car=IntVar() entry_nb_car=Entry(textvariable=nb_car,bd=5) entry_nb_car.grid(row=2,column=4,padx=5) ################################### buton_mot_de_passe=Button(text="Creer mot de passe",command=gen_password) buton_mot_de_passe.grid(row=4,column=1,columnspan=4) lab_mot_de_passe=Label(text="Mot de passe:",bg="#3356ff") lab_mot_de_passe.grid(row=5,column=1,columnspan=4) fenetre.mainloop()