Juego de la lotería con Pygame
Este programa simula un juego de lotería en el que por medio de un spinbox se puede manipular el tiempo que se mostrará una carta.
Link para descargar las cartas y audios: https://drive.google.com/open?id=1ZGltHM408rRIJ34uFu8hSED9cYVSwsIF
Link para descargar las cartas y audios: https://drive.google.com/open?id=1ZGltHM408rRIJ34uFu8hSED9cYVSwsIF
import os #libreria para obtener rutas de direcciones en carpetas import random # para generar numeros aleatorios import threading #libreria para manejar hilos from Tkinter import * # GUI,botones,label,menu,entry,tk,frame etc import PIL from PIL import Image, ImageTk # tratar imagenes ,png import time # para tiermpos o dormir o espera o wait en segundos import pygame # para juegos 2D y 3d """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() #creamos un objeto ventana Tk() contenedor = Frame(ventana, width=700, height=700) # poner un frame arriba del marco o ventana TK contenedor.config(bg="misty rose") contenedor.pack()#para cargar ventana y frame Etitulo = Label(contenedor, text="Loteria Mexicana", background="pink", font=("Century Gothic", 40, "bold")).place(x=120, y=20) Etiempo = Label(contenedor, text="Tiempo entre cartas: ",background="pink", font=("Century Gothic", 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.config(bg="pink") Limagen.place(x=300, y=180) TBoton = StringVar() TBoton.set("Jugar") Bplay = Button(contenedor,background="pink", textvariable=TBoton, command=play) Bplay.place(x=500, y=98) Tetiqueta = StringVar() Enombre = Label(contenedor, textvariable=Tetiqueta, background="pink", font=("Arial", 40, "bold")) Enombre.place(x=80, y=400) pygame.init() ventana.mainloop()
Excelente post comprar loteria on line
ResponderEliminar