UNIDAD 4-PROGRAMAS HECHOS DESDE CERO

Imagen
#PROGRAMA QUE PIDE EL NOMBRE DE UNA PERSONA Y LA SALUDA. from Tkinter import * from tkMessageBox import * ventana=Tk() ventana.geometry("300x300") ventana.title('Hola.........') nombre= StringVar() nombre.set('') dato=Entry(ventana,textvariable=str(nombre)).place(x=100,y=100) button=Button(ventana,text='hola',command=lambda:showinfo(title='hola', message='hola '+ nombre.get())).place(x=100,y=150) ventana.mainloop() ejecucion del programa: #Programa que abre el explorador de archivos y copia la ruta y la muestra en un Entry. from Tkinter import * from PIL import * from tkFileDialog import askopenfilename ventana=Tk() ventana.geometry('450x300') def llamada(): hey = StringVar() nombre = askopenfilename() print nombre hey.set(nombre) label = Entry(ventana, textvariable=hey,width=50).place(x=100, y=100) nombre=Label(ventana,text='pulse el boton y elija una ruta').place(x=10,y=10) label=

JUEGO PIEDRA,PAPEL O TIJERA


PROGRAMA EN PYTHON:
El objetivo principal de este programa es simular el juego de piedra papel o tijera contra la ‘la cpu’
De que manera(FUNCIONAMIENTO DEL CODIGO):

Lo primero que se hizo fue importar las librerias necesarias:Tkinter,tkMessageBox y random.

Bien lo primero que se creo fue el objeto para poder utilizar la librería tkinter llamada en este caso “ventana”.A la ventana le di valores de ancho y largo y un respectivo titulo.
Depues cree las etiquetas y botones que se mostrarían en dicha ventana(a los botones les asigne una funcion con un parámetro en especial).

En la dicha funcion se creo un array donde se introducieron los tres valores posibles en el juego,hacemos una elección aleatoria de los 3 valores dentro del array con random.choice esto será guardado en una variable y se tomara como una decisión de la cpu.
Ahora en este caso,hay un parámetro en la funcion la cual cambia dependiendo de la elección del botón que presione el usuario al ejecutar el programa,este parámetro se llama “opcion” y se cambia el valor de en cada uno de los botones.El valor de opción es igualado a la variable decisiónusuario y esta a su vez es lo que se compra dentro de un if(que es el principal)

El if  lo que compara son números 1,2 y 3:
Tomo como valor de ellos simulando(1 (piedra,2(papel) y3 (tijera))
Al presionar uno de los botones el if empezara a ejecutarse con el valor que se le dio al botón:
Compara con decisionusuario y elige:
Lo primero que se hace dentro del if es mostrar en pantalla los labels que nos indica la decisión que hemos tomado y la que se ha generado con el random y enseguida nos muestra una imagen de la decisión que hemos tomado(esto con la funcion PhotoImage de Tkinter).
Enseguida entramos en otro if el cual sirve para decirnos si hemos Ganado,perdido o Empatado.Lo que se toma como parámetro en este if es la generada con random y la comparamos con la cadena de caracteres correspondientes,las cuales varian dependiendo de que decisión haya tomado el usuario.
Bien para finalizar cada una de las posibles decisiones nos arroja en la ventana como resultado:
Una imagen de la decisión de la cpu dependiendo el caso y también el mensaje de que si hemos ganado empatado o ganado(con la funcion showinfo).



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()

PD:estas imagenes deben estar en la misma carpeta que el programa






Programa en ejecucion:

Comentarios

Entradas más populares de este blog

Modulos de Python

1.2 Dispositivos de hardware y software para el despliegue gráfico.

ejercicios del dia 06-11-18(ejercicios de ventanas,showinfo....)