21- Mostrando imagenes al azar con sonido,etiquetas y botones mediante hilos
Codigo:
from Tkinter import * #para crear GUI
from PIL import Image, ImageTk #despliega imagenens
import os #libreria para dar ruta o path de una carpeta
import random
import pygame
import threading
root = Tk() #lo uso para la ventana de app de tkinter
root.geometry("400x400")
def main(aux):
while aux == 1:
global sonidos, fotos,eleccion_aleatoria
dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan las imagenes
fotos = dir + "/imagenes/"
sonidos = dir + "/sonidos8/"
arreglo = [1,2,3,4,5,6,7,8] #crear un arreglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1)
hilo1 = threading.Thread(target=et)
hilo2 = threading.Thread(target = repsonido)
hilo3 = threading.Thread(target =img)
hilo1.start()
hilo2.start()
hilo3.start()
break
def repsonido():
sonido = sonidos + eleccion_aleatoria + ".mp3"
pygame.mixer.init()
pygame.mixer.music.load(sonido)
pygame.mixer.music.play()
def img():
global tkimage
figura = fotos + eleccion_aleatoria + ".png"
img = Image.open(figura)
tkimage = ImageTk.PhotoImage(img)
etiqueta = Label(root, image=tkimage).place(x=100, y=200)
def et():
lab = Label(text=" ", font=("Times New Roman", 20, "bold")).place(x=60,y=300)
nombres = ["Cat","Dog", "House", "Pencil", "Worm", "3D", "Flower", "Car"]
lab = Label(text = nombres[int(eleccion_aleatoria)-1], font=("Times New Roman",20)).place(x=10,y=110)
def fin():
root.destroy()
b1 = Button(text = "Mostrar Imagenes", command = lambda: main(1)).place(x=10, y=50)
b2 = Button(text = "Terminar programa", command = fin).place(x=200,y=50)
root.mainloop()
22- Juego de los números con interfaz grafica(Juego de Alex)
Codigo:
from Tkinter import *
from random import *
import random
import tkMessageBox
intentos =0
aux=0
def inicio_jugar():
arr = [1, 2, 3, 4, 5]
global intentos
intentos = random.choice(arr)
global num
num = randint(1, 5)
nom=entrada1.get()
et1=Label(contenedor,text="Hola "+nom+" estoy pensando en un numero entre 1 y 5, crees poder adivinarlo?",font=("Times New Roman",15)).place(x=0,y=147)
et2=Label(contenedor,text="La suerte va a decir el numero de intentos que tienes",font=("Times New Roman",15)).place(x=0,y=207)
et3=Label(contenedor,text="Tienes "+str(intentos)+" intentos",font=("Times New Roman",15)).place(x=90,y=267)
parte_2()
def parte_2():
et4 = Label(contenedor, text="Intenta adivinar: ", font=("Times New Roman", 15)).place(x=90, y=337)
global entrada2
entrada2= StringVar()
objentrada2 = Entry(contenedor, textvariable=entrada2).place(x=242, y=342)
b2 = StringVar()
b2.set("Verificar respuesta")
bgame2 = Button(contenedor, textvariable=b2, command=verificar).place(x=380, y=340)
def verificar():
global aux
while auxnum:
tkMessageBox.showinfo("Alerta", "Tu estimacion es muy alta")
aux+=1
break
if num==est:
accion = tkMessageBox.askyesno("Atencion",
"Haz ganado el juego\n Quieres volver a jugar?")
if accion == False:
ventana.destroy()
break
else:
aux = 0
inicio_jugar()
break
if intentos==aux:
accion = tkMessageBox.askyesno("Atencion","Haz perdido el juego\n Quieres volver a jugar?")
if accion == False:
ventana.destroy()
else:
aux = 0
inicio_jugar()
ventana=Tk()
ventana.config(bg="gray")
contenedor=Frame(ventana,width=650,height=650)
contenedor.pack()
t1=Label(contenedor,text="Bienvenido al juego adivina el numero",font=("Times New Roman",15)).place(x=90,y=25)
t2=Label(contenedor,text="Ingresa tu nombre: ",font=("Times New Roman",15)).place(x=90,y=87)
b1=StringVar()
b1.set("Iniciar juego")
bgame=Button(contenedor,textvariable=b1,command=inicio_jugar).place(x=407,y=87)
entrada1=StringVar()
objentrada=Entry(contenedor,textvariable=entrada1).place(x=240,y=90)
ventana.mainloop()
23- Juego de piedra, papel o tijera (Por Carlos Olvera)
Enlace archivos:
https://drive.google.com/drive/folders/1oagprZJTu-3afTm4p9GR5XpSNZyArqUN
Enlace archivos:
https://drive.google.com/drive/folders/1oagprZJTu-3afTm4p9GR5XpSNZyArqUN
Codigo:
from Tkinter import * # libreria para utilizar las ventanas,labels,ventanasemergentes y botones
from tkMessageBox import * # para poder utilizar el abra el cuadro de dialogo
import random # para poder generar nuneros aleatorios
def funcion(opcion):
tiposdemanos = ['piedra', 'papel', 'tijera'] # creo un arreglo con tres valores posibles
eleccion_aleatoria = random.choice(
tiposdemanos) # a la variable le asigno un valor a traves de random utilizando uno de los tres valores que estan en el array
decisioncpu = eleccion_aleatoria # la variable decision cpu se iguala
decision_usuario = opcion # utilizo como parametro la variable opcion y la igualo a decision usuario para poder usarla en el if
if decision_usuario == 1: # el numero uno lo uso como tijera y ese valor se lo asigno al presionar el boton 'piedra'
Decisionusuario = Label(ventana, text='elegiste piedra', font=("agency fb", 12)).place(x=50, y=220)
imagen1 = PhotoImage(file='piedrausuario.gif') # utilizo una imagen para mostrar mi seleccion
lblusuario = Label(ventana, image=imagen1).place(x=50, y=300) # muestro esa image a traves de un label
DecisionCPU = Label(ventana, text=('la cpu eligio ' + decisioncpu), font=("agency fb", 12)).place(x=300,
y=220) # muestro en pantalla la decision random que genero
if decisioncpu == "piedra": # la decision random la comparo con cadenas de caracteres en los 3 casos
imagen2 = PhotoImage(file='piedracpu.gif') # eligo la imagen determinada
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300) # y la muestro en pantalla
showinfo(title='resultado',
message='empate') # atravez de una ventana emergente muestro si gano,perdio o empato
elif decisioncpu == 'papel':
imagen2 = PhotoImage(file='papelcpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
showinfo(title='resultado ', message='perdiste')
else:
imagen2 = PhotoImage(file='tijeracpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
showinfo(title='resultado', message='Ganaste')
elif decision_usuario == 2:
imagen1 = PhotoImage(file='papelusuario.gif')
lblusuario = Label(ventana, image=imagen1).place(x=50, y=300)
Label10 = Label(ventana, text='elegiste papel', font=("agency fb", 12)).place(x=50, y=220)
Label11 = Label(ventana, text=('la cpu eligio ' + decisioncpu), font=("agency fb", 12)).place(x=300, y=220)
if decisioncpu == 'piedra':
imagen2 = PhotoImage(file='piedracpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
print 'haz ganado pax'
showinfo(title='resultado ', message='Ganaste')
elif decisioncpu == 'papel':
imagen2 = PhotoImage(file='papelcpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
print 'empate'
showinfo(title='resultado', message='empate')
else:
imagen2 = PhotoImage(file='tijeracpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
print 'haz perdido!!!!'
showinfo(title='resultado ', message='perdiste')
elif decision_usuario == 3:
imagen1 = PhotoImage(file='tijerausuario.gif')
lblusuario = Label(ventana, image=imagen1).place(x=50, y=300)
Label10 = Label(ventana, text='elegiste tijera', font=("agency fb", 12)).place(x=50, y=220)
Label11 = Label(ventana, text=('la cpu eligio ' + decisioncpu), font=("agency fb", 12)).place(x=300, y=220)
if decisioncpu == 'piedra':
imagen2 = PhotoImage(file='piedracpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
showinfo(title='resultado ', message='perdiste')
elif decisioncpu == 'papel':
imagen2 = PhotoImage(file='papelcpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
showinfo(title='resultado ', message='ganaste')
else:
imagen2 = PhotoImage(file='tijeracpu.gif')
lblcpu = Label(ventana, image=imagen2).place(x=250, y=300)
showinfo(title='resultado ', message='empate')
ventana = Tk()
ventana.geometry("500x500")
ventana.title('JUEGO DEL PIEDRA PAPEL O TIJERA')
label1 = Label(text="ELIGA UNO DE LOS 3", font=("agency fb", 18)).place(x=10, y=30)
label3 = Label(ventana, text='PIEDRA,PAPEL O TIJERA').place(x=0, y=0)
label2 = Label(ventana, text='un juego clasico y sencillo').place(x=0, y=0)
# boton para piedra
Piedra = Button(ventana, text='piedra', command=lambda: funcion(1)).place(x=50, y=100)
# boton para papel
Papel = Button(ventana, text='papel', command=lambda: funcion(2)).place(x=150, y=100)
# boton para tijera
Tijera1 = Button(ventana, text='tijera', command=lambda: funcion(3)).place(x=250, y=100)
ventana.mainloop()
24- Caja de dialogo
Codigo:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# www.pythondiario.com
from Tkinter import *
from tkMessageBox import *
def pregunta():
showerror("Pregunta", "Discuple, no hay preguntas disponibles")
def devolucion():
if askyesno('Verificar', '¿Realmente quiere salir?'):
showwarning('Si', 'No está implementado')
else:
showinfo('No', 'Salir fue cancelado')
Button(text='Salir', command=devolucion).pack(fill=X)
Button(text='Pregunta', command=pregunta).pack(fill=X)
mainloop()
25- Abrir Archivos
Codigo:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# www.pythondiario.com
from Tkinter import *
from tkFileDialog import askopenfilename
def llamada():
nombre = askopenfilename()
print nombre
errmsg = 'Error!'
Button(text='Abrir archivo', command=llamada).pack(fill=X)
mainloop()
26- Ventana, etiqueta, boton
Codigo:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# www.pythondiario.com
from Tkinter import *
app = Tk()
app.title("Aplicacion grafica en python")
etiqueta = Label(app, text="Hola mundo!!!")
boton = Button(app, text="OK!!")
etiqueta.pack()
boton.pack()
app.mainloop()
27- Python File Multiple (comentado linea por linea)
Codigo:
# !/usr/bin/python# -*- coding: utf-8 -*-# www.pythondiario.comimport sys # importacion de la libreria sysfrom Tkinter import * # importacion del modulo tkinterdef hacer_click(): # se crea una funciontry: # funciona en caso de que se ingrese a la caja de texto un valor diferente a un numero_valor = int(entrada_texto.get()) # captura lo que se ingrese a la caja de texto y lo guarda en _valor_valor = _valor * 5 # multiplica por 5 lo capturado por la caja y lo guarda en _valoretiqueta.config(text=_valor) # modifica la etiqueta por el valor resultante al multiplicar por 5except ValueError: # es parte del try, y se utiliza en caso de que se ingrese un valor distinto a un numeroetiqueta.config(text="Introduce un numero!") # muestra una etiqueta y manda un mensajeapp = Tk() # se crea la ventana de la appapp.title("Mi segunda App Grafica") # se le da titulo a la ventana# Ventana Principalvp = Frame(app) # organiza y da formato a la ventanavp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) # posiciona los elementos graficos en nuestra ventanavp.columnconfigure(0,weight=1) # da un peso relativo al ancho y alto de todos los elementos que se pongan en la ventanavp.rowconfigure(0, weight=1) # da un peso relativo al ancho y alto de todos los elementos que se pongan en la ventanaetiqueta = Label(vp, text="Valor") # se crea una etiquetaetiqueta.grid(column=2, row=2, sticky=(W, E)) # se posiciona la etiquetaboton = Button(vp, text="OK!", command=hacer_click) # se crea un boton que accionara la funcion hacer_clickboton.grid(column=1, row=1) # se posiciona el botonvalor = "" # se crea una variableentrada_texto = Entry(vp, width=10, textvariable=valor) # se crea una caja de texto para ingresar datosentrada_texto.grid(column=2, row=1) # se posiciona la caja de textoapp.mainloop() # ejecuta la ventana para que se pueda visualizar
28- Juego Encuentra la Pelota (Juego Propio sin Interfaz)
Codigo:
import random
print "Bienvenido al juego de Adivina en que vaso esta la pelota"
opcion = 0;
juego = ["Pelota","Vacio","Vacio"]
while opcion!=2:
print "Escoga un vaso:\n 1.- Izquierda\n 2.- Centro\n 3.- Derecha"
jugador = int(input("Opcion: "))
maquina = random.choice(juego)
if maquina == juego[jugador-1]:
print "Lo sentimos, has perdido, suerte para la proxima"
else:
print "Felicidades, encontraste la pelota!!\nHas ganado!!!"
opcion= input("Deseas seguir jugando? 1-Si/2-No:")
29- Interfaz Grafica con botones, cajas de texto y etiquetas
Codigo:
# -*- coding: utf-8 -*-
from Tkinter import *
def hacer_click():
try:
valor = int(entrada_texto.get())
valor = valor * 5
etiqueta.config(text=valor)
except ValueError:
etiqueta.config(text="Introduzca un valor")
def hacer_click2():
try:
valor2 = int(entrada_texto2.get())
valor2 = valor2 * 10
etiqueta2.config(text=valor2)
except ValueError:
etiqueta2.config(text="Introduzca un valor")
def hacer_click3():
try:
valor3 = int(entrada_texto3.get())
valor3 = valor3 * 15
etiqueta3.config(text=valor3)
except ValueError:
etiqueta3.config(text="Introduzca un valor")
app = Tk() # marco de la aplicacion con el obj Tk
vp = Frame(app) # usamos el objeto frame
'''ahora le damos formato a nuestra ventana, y para eso
vamos a utilizar el metodo grid(), el cual nos va a permitir
posicionar los elementos graficos en nuestra ventana.
otro parametro que utilizaremos sera el margen: padx = (50,50)
lo cual indica 50 pixeles del lado izquierdo y 50 pixeles
del lado derecho
luego utilizamos pady = (10,10), que son 10 pixeles en la parte
superior y 10 pixeles en la parte inferior'''
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10))
'''luego vamos a utilizar los metodos columnconfigure()
y rowconfigure() los cuales nos van a servir para dar un
peso relativo del ancho y el alto de todos los elementos
que se pongan en la ventana'''
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)
'''creamos una etiqueta llamada valor y la posicionamos
con el metodo grid()'''
etiqueta = Label(vp, text="valor") # creo un objeto etiqueta
etiqueta.grid(column=100, row=1)
etiqueta2 = Label(vp, text="valor 2")
etiqueta2.grid(column=100, row=4)
etiqueta3 = Label(vp, text="valor 3")
etiqueta3.grid(column=100, row=6)
'''creamos un boton de OK y posicionamos con grid '''
boton = Button(vp, text="Multiplicar por 5", command=hacer_click)
boton.grid(column=1, row=1)
boton1 = Button(vp, text="Multiplicar por 10", command=hacer_click2)
boton1.grid(column=1, row=4)
boton2 = Button(vp, text="Multiplicar por 15", command=hacer_click3)
boton2.grid(column=1, row=6)
valor = ""
entrada_texto = Entry(vp, width=10, textvariable=valor)
entrada_texto.grid(column=2, row=1)
valor2 = ""
entrada_texto2 = Entry(vp, width=10, textvariable=valor2)
entrada_texto2.grid(column=2, row=4)
valor3 = ""
entrada_texto3 = Entry(vp, width=10, textvariable=valor3)
entrada_texto3.grid(column=2, row=6)
app.mainloop() # es el metodo mainloop, lanza la ventana
Comentarios
Publicar un comentario