El dia de hoy les traigo un prqueño programa con interfaz grafica que te barajea las cartas de la loteria incluyendo sonido e imagenes:
Archivos necesarios: Descargar Aqui
import os import random import threading from Tkinter import * import PIL from PIL import Image, ImageTk import time import pygame """Variables globales""" imagen=0 stop=0 dir = os.path.dirname(__file__) Ccartas=dir+"/Cartas/" #establece la ruta hacia las imagenes de cartas Csonido=dir+"/Sonidos/" #establece la ruta hacia los sonidos play=1 """--------------------------------------------------------""" def setimagen(nombre,x,y): #carga la imagen global imagen #Declaro el uso de una variable global img = Image.open(nombre) #cargo la imagen mandada como parametro img.thumbnail((x, y), Image.ANTIALIAS) #establezco sus dimensiones y la propiedad antialiasado imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter return imagen #retorno el objeto con la imagen def play(): global stop,play,TBoton #Declaro el uso de las variables stop y play """play: sirve para controlar la pulsasion del boton, si se pulsa una vez el boton jugar en pantalla deberia iniciar el juego pero si se vuelve a pulsar deberia detenerse y dado que se usa el mismo boton para ambas acciones la uso para controlar las acciones stop: se usa para controlar el hilo de ejecucion declarado, si stop vale 1 debera terminar el hilo, si vale 0 debera continuar hasta que se le indique""" if play==1: TBoton.set("Pausar") t=threading.Thread(target=hilo) t.start() stop=0 #El hilo continua con normalidad play=0 #La proxima vez que se pulse el boton debera entrar en el else else: TBoton.set("Jugar") play=1 #La proxima vez que se pulse el boton debera entrar en el if stop=1 #Se detiene el hilo def reproducirsonido(nombre): pygame.mixer.music.load(nombre) pygame.mixer.music.play() def hilo(): global tiempo, cartas, Limagen,stop,Tetiqueta,spin cartas = ["EL GALLO", "EL DIABLITO", "LA DAMA", "EL CATRIN", "EL PARAGUAS", "LA SIRENA", "LA ESCALERA", "LA BOTELLA", "EL BARRIL", "EL ARBOL", "EL MELON", "EL VALIENTE", "EL GORRITO", "LA MUERTE", "LA PERA", "LA BANDERA", "EL BANDOLON", "EL VIOLINCELLO", "LA GARZA", "EL PAJARO", "LA MANO", "LA BOTA", "LA LUNA", "EL COTORRO", "EL BORRACHO", "EL NEGRITO", "EL CORAZON", "LA SANDIA", "EL TAMBOR", "EL CAMARON", "LAS JARAS", "EL MUSICO", "LA ARANA", "EL SOLDADO", "LA ESTRELLA", "EL CAZO", "EL MUNDO", "EL APACHE", "EL NOPAL", "EL ALACRAN", "LA ROSA", "LA CALAVERA", "LA CAMPANA", "EL CANTARITO", "EL VENADO", "EL SOL", "LA CORONA", "LA CHALUPA", "EL PINO", "EL PESCADO", "LA PALMA", "LA MACETA", "EL ARPA", "LA RANA"] reproducirsonido(Csonido + "inicio.ogg") time.sleep(3) while True: nombre=str(cartas.index(random.choice(cartas))+1) carta = Ccartas + nombre + ".png" Limagen.config(image=setimagen(carta,400,400)) Tetiqueta.set("Salio: "+cartas[int(nombre)-1]) sonido=Csonido+"s_("+nombre+").ogg" reproducirsonido(sonido) time.sleep(float(spin.get())) if stop==1: break ventana=Tk() ventana.config(bg="gray") contenedor=Frame(ventana,width=700,height=700) contenedor.pack() Etitulo=Label(contenedor,text="Loteria Mexicana",font=("Arial",40,"bold")).place(x=120,y=20) Etiempo=Label(contenedor,text="Tiempo entre cartas: ",font=("Arial",12,"bold")) Etiempo.place(x=130,y=100) spin=Spinbox(contenedor,values=[2,3,4,5,6,7,8,9,10,11,12],font=("Arial",12,"bold")) spin.place(x=295,y=101) Limagen=Label(contenedor) Limagen.place(x=300,y=180) TBoton=StringVar() TBoton.set("Jugar") Bplay=Button(contenedor,textvariable=TBoton,command=play) Bplay.place(x=500,y=98) Tetiqueta=StringVar() Enombre=Label(contenedor,textvariable=Tetiqueta,font=("Arial",40,"bold")) Enombre.place(x=80,y=400) pygame.init() ventana.mainloop()Salida:
Archivos necesarios: Descargar Aqui
Comentarios
Publicar un comentario