App Grafica | Baraja de Loteria Mexicana



import os
import random
import threading
from Tkinter import *
from PIL import Image, ImageTk
import time
import pygame

"""Variables globales"""
imagen=0
stop=0
#dir = os.path.dirname(__file__)
dir= os.path.dirname("/home/alberto/Documentos/Proyectos Python/Loteria/") #aui va la ruta de la carpeta con las otras carpetas de png y sonido
CarpetaCartas=dir+"/Cartas/" #establece la ruta hacia la  carpeta imagenes de cartas
#/home/alberto/Descargas/Loteria/Sonidos/
CarpetaSonido=dir+"/Sonidos/" #establece la ruta hacia la carpeta 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
    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(CarpetaSonido + "Inicio.ogg")
    time.sleep(3)

    while True:
        nombre=str(cartas.index(random.choice(cartas))+1)
        carta = CarpetaCartas + nombre + ".png"
        Limagen.config(image=setimagen(carta,400,400))
        Tetiqueta.set("Salio: "+cartas[int(nombre)-1])
        sonido=CarpetaSonido+"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()