Mi Juego en Python





Descarga :Google Drive


Python 3D | Cubo



import pygame
from pygame.locals import *

from OpenGL.GL import *
from OpenGL.GLU import *

verticies = ((1, -1, -1),(1, 1, -1),(-1, 1, -1),(-1, -1, -1),(1, -1, 1),(1, 1, 1),(-1, -1, 1),(-1, 1, 1))

edges = ((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(6,3),(6,4),(6,7),(5,1),(5,4),(5,7))


def Cube():
    glBegin(GL_LINES)
    for edge in edges:
        for vertex in edge:
            glVertex3fv(verticies[vertex])
    glEnd()

def main():
    pygame.init()
    pygame.display.set_caption('Cubo 3D - Alberto Vega')
    display = (800,600)
    pygame.display.set_mode(display, DOUBLEBUF|OPENGL)

    gluPerspective(45, (display[0]/display[1]), 0.1, 50.0)

    glTranslatef(0.0,0.0, -5)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        glRotatef(1, 3, 1, 1)
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
        Cube()
        pygame.display.flip()
        pygame.time.wait(10)

main()

Python 3D | Triangulo



import pygame
from pygame.locals import *

from OpenGL.GL import *
from OpenGL.GLU import *

verticies = (
    (1, -1, -1),
    (1, 1, -1),
    (-1, 1, -1),
    (-1, -1, -1),
    (0,0,1)

    )

edges = (
    (4,0),
    (4,1),
    (4,2),
    (4,3),
    (0,1),
    (0,3),
    (2,1),
    (2,3)

    )


def Cube():
    glBegin(GL_LINES)
    for edge in edges:
        for vertex in edge:
            glVertex3fv(verticies[vertex])
    glEnd()


def main():
    pygame.init()
    display = (800,600)
    pygame.display.set_mode(display, DOUBLEBUF|OPENGL)

    gluPerspective(45, (display[0]/display[1]), 0.1, 50.0)

    glTranslatef(0.0,0.0, -5)

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        glRotatef(1, 3, 1, 1)
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
        Cube()
        pygame.display.flip()
        pygame.time.wait(10)


main()

Python 3D | Cubo de Colores




import sys, math, pygame
from operator import itemgetter
class Point3D:
    def __init__(self, x=0, y=0, z=0):
        self.x, self.y, self.z = float(x), float(y), float(z)
    def rotateX(self, angle):
        """ Rotates the point around the X axis by the given angle in degrees. """
        rad = angle * math.pi / 180
        cosa = math.cos(rad)
        sina = math.sin(rad)
        y = self.y * cosa - self.z * sina
        z = self.y * sina + self.z * cosa
        return Point3D(self.x, y, z)
    def rotateY(self, angle):
        """ Rotates the point around the Y axis by the given angle in degrees. """
        rad = angle * math.pi / 180
        cosa = math.cos(rad)
        sina = math.sin(rad)
        z = self.z * cosa - self.x * sina
        x = self.z * sina + self.x * cosa
        return Point3D(x, self.y, z)

    def rotateZ(self, angle):
        """ Rotates the point around the Z axis by the given angle in degrees. """
        rad = angle * math.pi / 180
        cosa = math.cos(rad)
        sina = math.sin(rad)
        x = self.x * cosa - self.y * sina
        y = self.x * sina + self.y * cosa
        return Point3D(x, y, self.z)

    def project(self, win_width, win_height, fov, viewer_distance):
        """ Transforms this 3D point to 2D using a perspective projection. """
        factor = fov / (viewer_distance + self.z)
        x = self.x * factor + win_width / 2
        y = -self.y * factor + win_height / 2
        return Point3D(x, y, self.z)


class Simulation:
    def __init__(self, win_width=640, win_height=480):
        pygame.init()

        self.screen = pygame.display.set_mode((win_width, win_height))
        pygame.display.set_caption("Figura de cubo 3D en python")

        self.clock = pygame.time.Clock()

        self.vertices = [
            Point3D(-1, 1, -1),
            Point3D(1, 1, -1),
            Point3D(1, -1, -1),
            Point3D(-1, -1, -1),
            Point3D(-1, 1, 1),
            Point3D(1, 1, 1),
            Point3D(1, -1, 1),
            Point3D(-1, -1, 1)
        ]

        # Define the vertices that compose each of the 6 faces. These numbers are
        #  indices to the vertices list defined above.
        self.faces = [(0, 1, 2, 3), (1, 5, 6, 2), (5, 4, 7, 6), (4, 0, 3, 7), (0, 4, 5, 1), (3, 2, 6, 7)]

        # Define colors for each face
        self.colors = [(255, 0, 100), (100, 0, 0), (0, 25, 0), (0, 0, 255), (0, 255, 155), (255,5, 0)]

        self.angle = 0
    def run(self):
        """ Main Loop """
        while 1:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()

            self.clock.tick(50)
            self.screen.fill((0, 32, 0))

            # It will hold transformed vertices.            \
            t = []

            for v in self.vertices:
                # Rotate the point around X axis, then around Y axis, and finally around Z axis.
                r = v.rotateX(self.angle).rotateY(self.angle).rotateZ(self.angle)
                # Transform the point from 3D to 2D
                p = r.project(self.screen.get_width(), self.screen.get_height(), 256, 4)
                # Put the point in the list of transformed vertices
                t.append(p)

            # Calculate the average Z values of each face.
            avg_z = []
            i = 0
            for f in self.faces:
                z = (t[f[0]].z + t[f[1]].z + t[f[2]].z + t[f[3]].z) / 4.0
                avg_z.append([i, z])
                i = i + 1
            # Draw the faces using the Painter's algorithm:
            #  Distant faces are drawn before the closer ones.
            for tmp in sorted(avg_z, key=itemgetter(1), reverse=True):
                face_index = tmp[0]
                f = self.faces[face_index]
                pointlist = [(t[f[0]].x, t[f[0]].y), (t[f[1]].x, t[f[1]].y),
                             (t[f[1]].x, t[f[1]].y), (t[f[2]].x, t[f[2]].y),
                             (t[f[2]].x, t[f[2]].y), (t[f[3]].x, t[f[3]].y),
                             (t[f[3]].x, t[f[3]].y), (t[f[0]].x, t[f[0]].y)]
                pygame.draw.polygon(self.screen, self.colors[face_index], pointlist)

            self.angle += 1
            pygame.display.flip()


if __name__ == "__main__":
    Simulation().run()

Python 3D | Grafico 3D



from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111, projection='3d')

xpos = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
ypos = [10,1,1,1,1,6,2,1,7,2,3,5,1,3,2]
num_elements = len(xpos)
zpos = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
dx = ldy = ldz = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

ax1.bar3d(xpos, ypos, zpos, dx, ldy, ldz, color='Blue')
plt.show()

Practica Usando GUI | IMC



# -*- coding: utf-8 -*-import sys
import Tkinter
from Tkinter import *
import tkMessageBox

def imc():
    num1 = int(entrada_peso.get())
    num2 = float(entrada_altura.get())
    imc = (num1 / (num2*num2))

    if imc == 0 or imc < 18:
        tkMessageBox.showinfo("Resultado", "Peso bajo. Necesario valorar signos de desnutricion")

    elif imc == 18 or imc < 25:
        tkMessageBox.showinfo("Resultado", "Usted tiene un peso normal")

    elif imc == 25 or imc < 27:
        tkMessageBox.showinfo("Resultado", "Usted padece sobrepeso")

    elif imc == 27 or imc < 30:
        tkMessageBox.showinfo("Resultado", "Usted padece obesidad grado I")

    elif imc == 30 or imc < 40:
        tkMessageBox.showinfo("Resultado", "Usted padece de obesidad grado II")

    else:
        tkMessageBox.showinfo("Resultado", "Usted padece de obesidad morbida")

ventana=Tk()
ventana.title("Calculo de IMC")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")

vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)

peso = IntVar()
altura = float()

etiqueta_peso = Label(ventana, text='Peso(kg):', bg='ivory')
etiqueta_peso.grid(row=1, column=1,  padx=(10, 10), pady=(10, 10), sticky=E)

entrada_peso = Entry(ventana, textvariable=peso)
entrada_peso.grid(row=1, column=2,  padx=(10, 10), pady=(10, 10), sticky=E)

etiqueta_altura = Label(ventana, text='Altura(mts): ', bg='ivory')
etiqueta_altura.grid(row=2, column=1, padx=(10, 10), pady=(10, 10), sticky=E)

entrada_altura = Entry(ventana, textvariable=altura)
entrada_altura.grid(row=2, column=2, padx=(10, 10), pady=(10, 10), sticky=E)

bconv = Button(ventana, bg='plum', fg='white', text='Calcular IMC', width=10, height=1, command=imc)
bconv.grid(row=4, column=2, padx=(10, 10), pady=(10, 10))

ventana.mainloop()

Practica Usando GUI | Ingresar Peliculas con Clasificacion y Sistema de Renta




# coding=utf-8

from ttk import *
from tkMessageBox import askyesno,showinfo,showerror;
from Tkinter import *
def AddEntryMovie():

    Movie = CatchMovie.get()
    if (CatchMovie.get()==""):
        CatchMovie.config(bg="red")
        showerror("What Movie it is?", "Por favor ingresa una pelicula! no dejes el campo en blanco!")
        CatchMovie.config(bg="white")


    if (Classes.get()==""):
            #otra pequeña "excepcion" por si la clasificación de la pelicula no tiene seleccionada una clasificacion
        showerror("What Movie it is?","Por favor selecciona una clasificacion!")

    if (askyesno("Are you sure?", "Deseas añadir esta pelicula: \n\""+Movie+"\"\nA la lista de peliculas?")==True):
                values = list(MoviesOnList["values"])
                #se crea dentro de la funcion la Variable "values" que sera una lista de los valores que se encuentran en la lista despegable
                MoviesOnList["values"] = values + [Movie]
                #de la lista despegalble agregamos el nuevo valor que esta en nuestro campo de texto, para esto debemos ponerlo entre                #  [] para que se interprete como el valor de una lista y pueda sumarse a la lista despegable de peliculas
                Classifications.insert(i,Classes.get())
                #añade la clasificiación a una lista, para asi tenerla disponible en la Lista Despegable de Peliculas disponibles
                Mov.insert(i,Movie)
                i+1
                CatchMovie.delete(0, END)
                #ya lo hemos visto antes pero lo explicare aun asi, .delete(0, END) borra el texto dentro del Entry
                CatchMovie.insert(0, "")
                #Aqui es casi lo mismo, pero deja el campo Vacio y usable, tambien para evitar errores de captura
                Classes.set("")
                #Reinicia la Lista Despegable de las clasificaciones

                showinfo("Exito!","Has anadido: \""+Movie+"\" A la lista de Peliculas")
    else:
                showinfo("Guess No","La Pelicula: "+Movie+" No sera anadida")
def firstDone():
    if (askyesno("Are you sure?","ADVERTENCIA: ESTA ACCION NO PUEDE SER DESHECHA" "\nSi de verdad ya terminaste te agregar peliculas, prosigue, si no, DETENTE!")==True):
        CatchMovie.config(state="disable")
        Classes.config(state="disable")
        AddMov.config(state="disable")
        Done.config(state="disable")
        #tambien se habia visto antes, pero explicare aun asi, el 'state' "disable" deshabilita el componente del frame        app.geometry("600x300")
        #se puede cambiar la dimension de una ventana, aunque se haya establecido un tamaño, esto nos permite controlar la ventana y los componentes a mostrar
        MovietoRent.grid()
        MoviesOnList.grid()
        ClassifiedAs.grid()
        AskRent.grid()
        Days4Rent.grid()
        Rent.grid()
        #simplemente con .grid() vuelvo a colocar en su respectivo lugar, los elementos que no son visibles para el usuario, ocultos con '.grid_remove()'
        showinfo("","Puedes seguir agregando peliculas si gustas!")
def MovieSel(self):
    ClassifiedAs.config(state="normal")
    #para que un Entry pueda mostrar un texto, es necesario que este en un estado normal (state="normal")
    ClassifiedAs.delete(0, END)
    ClassifiedAs.insert(0, Classifications.__getitem__(Mov.index(MoviesOnList.get())))
    #aqui se hace uso de la Lista [] y el atributo "__getitem__()" para obtener lo que este en la lista, para ello    #es necesario poner un indice numerico, asi que utilizando ".index()" puedo llamar solo el indice (numero en la lista)    #y .__getitem__() obtendra el objeto que este en ese indice de la lista, para asi poder mostrar la clasificación correecta    ClassifiedAs.config(state="readonly")
    #al cambiar el estado a "Solo Lectura" (state="readonly") el Entry solo mostrara Texto, pero no permitira la entrada de datos o textos
def RentAMovie():
    if (askyesno("You ready?","Deseas Rentar la pelicula: "+MoviesOnList.get()+
                              "\n por "+Days4Rent.get()+" Dia/s?")==True):
        if (ClassifiedAs.get()=="Adultos"):
            if(askyesno("Age Issue","Eres Mayor de Edad?")==True):
                showinfo("Ask for: ","Presente su Identificación")
            else:
                showerror("Get outta here","NO SE RENTAN PELICULAS A MENORES")
        else:
            showinfo("Have a nice day!","Disfruta de tu pelicula! \nQue tengas un Buen dia :)")
    else:
        showinfo("Ok?","De acuerdo, revisa tus opciones entonces :)")
app = Tk()
app.geometry("600x120")
app.title("Lista de Peliculas")
vp = Frame(app)
vp.grid(column=0,row=0,padx=(30,30), pady=(20,20))
vp.rowconfigure(0, weight=1)
vp.columnconfigure(0, weight=1)
Classified = Label(vp, text="Clasificación")
Classified.grid(column=2, row=1, padx=(10,10), pady=(10,10))
AskMov = Label(vp, text="Ingrese una Pelicula: ")
AskMov.grid(column=1, row=1, padx=(10,10), pady=(10,10), sticky=W)
cMovie=StringVar
CatchMovie = Entry(vp, textvariable=cMovie, width=35)
CatchMovie.grid(column=1, row=2, padx=(10,10), pady=(10,10))
AddMov = Button(vp, text="Añadir", command=AddEntryMovie)
AddMov.grid(column=3, row=2, padx=(10,10), pady=(10,10))
Done = Button(vp, text="Finalizar", command=firstDone)
Done.grid(column=4, row=2, padx=(10,10), pady=(10,10))
Classes = Combobox (vp, state="readonly")
Classes.grid(column=2, row=2, padx=(10,10), pady=(10,10))
Classes["values"]=["Para todas las Edades","Familiar","Mayores de 10","Adolescentes","Mayores de 15","Adultos"]
Separator(vp, orient=HORIZONTAL).grid(column=1,row=3,columnspan=4,sticky=W+E,pady=(10,10))
MovietoRent = Label(vp, text="Pelicula a Rentar: ")
MovietoRent.grid(column=1, row=4, padx=(10,10), pady=(30,10), stick=W)
MovietoRent.grid_remove()
MoviesOnList = Combobox (vp, state="readonly")
MoviesOnList.grid(column=1,row=5,padx=(10,10),pady=(10,10), sticky=W+E)
MoviesOnList.bind(MovieSel)
MoviesOnList.grid_remove()
ClassifiedAs = Entry (vp,state="readonly")
ClassifiedAs.grid(column=2, row=5, padx=(10,10), pady=(10,10), sticky=W+E)
ClassifiedAs.grid_remove()
AskRent = Label(vp, text="Dias\n a Rentar")
AskRent.grid(column=3, row=4, padx=(10,10), pady=(10,10))
AskRent.grid_remove()
Days4Rent = Spinbox(vp,width=5, from_=1, to=7)
Days4Rent.grid(column=3, row=5, padx=(10,10), pady=(10,10), sticky=N+S)
Days4Rent.grid_remove()
Rent = Button(vp, text="Rentar", command=RentAMovie)
Rent.grid(column=4, row=5, padx=(10,10), pady=(10,10))
Rent.grid_remove()
Classifications = []
Mov = []
i = int(0)
app.mainloop()

Practica Usando GUI | Encriptador de Datos



# -*- coding: utf-8 -*-
from Tkinter import *

ventana = Tk()
ventana.geometry("300x300+350+80")
ventana.title("Encriptador")
ventana.resizable(width=False, height=False)
try:
    ventana.iconbitmap("icono.ico")
except:
    print("no hay icono disponible")

numclave = 1

def boton1():
    TAM_MAX_CLAVE = 26

    def obtenerModo():
        modo = "e"
        return modo

    def obtenerMensaje():
        mensaje = text.get("0.0", END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave = -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()

    if modo[0] != 'b':
        texto = (obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0", END)
        text.insert("0.0", texto)
        informe1.config(text="Texto Encriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def boton2():
    TAM_MAX_CLAVE = 26

    def obtenerModo():
        modo = "d"
        return modo

    def obtenerMensaje():
        mensaje = text.get("0.0", END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave = -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()

    if modo[0] != 'b':
        texto = (obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0", END)
        text.insert("0.0", texto)
        informe1.config(text="Texto Desencriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def salir():
    ventana.destroy()


def menu_activacion(event):
    menu_despegable.post(event.x_root, event.y_root)


def cortar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())
    sel = text.get(SEL_FIRST, SEL_LAST)
    text.delete(SEL_FIRST, SEL_LAST)


def copiar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())


def pegar():
    tem = text.selection_get(selection="CLIPBOARD")
    text.insert(INSERT, tem)


# Widget
b1 = Button(ventana, text="Encriptar", bg='black', fg='white', activebackground='cyan',
            activeforeground='dark slate gray', command=boton1, font=("Courier New", 9))
b2 = Button(ventana, text="Desencriptar", bg='black', fg='white', activebackground='cyan',
            activeforeground='dark slate gray', command=boton2, font=("Courier New", 9))
text = Text(ventana, fg='lavender', bg='dark slate gray', font=("Courier New", 10))
informe1 = Label(ventana, text="Ingrese un texto", bg="turquoise", font=("Courier New", 10))

# Empaquetado de los widget
b1.place(x=10, y=260, width=120, height=30)
b2.place(x=167, y=260, width=120, height=30)

informe1.place(x=0, y=0, width=300, height=30)

text.place(x=0, y=30, height=218, width=300)

# Menu popup(menu despegable)
menu_despegable = Menu(ventana, tearoff=0)
menu_despegable.add_command(label="Cortar", command=cortar, font=("Courier New", 9))
menu_despegable.add_command(label="Copiar", command=copiar, font=("Courier New", 9))
menu_despegable.add_command(label="Pegar", command=pegar, font=("Courier New", 9))
menu_despegable.add_separator()
menu_despegable.add_command(label="Salir", command=salir, font=("Courier New", 9))

# Evento del menu despegable
text.bind("Button-3", menu_activacion)

# donde mantener el enfoque.
ventana.mainloop()

Practica Usando GUI | Signo Zodiacal



from Tkinter import *
import tkMessageBox

ventana=Tk()
ventana.title("Signo Zodiacal")
ventana.geometry("400x200")
ventana.config(bg="rosybrown")

vp = Frame(ventana)
vp.grid(column=0, row=0, padx=(50, 50), pady=(10, 10)) #para posicionar cualquier objetovp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight=1)

var = StringVar(ventana)
ver=StringVar(ventana)
var.set("Enero")  # initial valuever = StringVar(ventana)
ver.set("1")  # initial value
etiqueta_mes = Label(ventana, text='Mes de nacimiento: ')
ent_mes = OptionMenu(ventana, var, "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre", )
etiqueta_mes.grid(row=1, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_mes.grid(row=1, column=3)

etiqueta_dia = Label(ventana, text='Dia de nacimiento: ')
ent_dia = OptionMenu(ventana, ver, "1", "2", "3","4", "5", "6","7", "8", "9","10", "11", "12","13", "14", "15","16", "17", "18","19", "20", "21","22", "23", "24", "25", "26", "27", "28", "29", "30", "31")
etiqueta_dia.grid(row=4, column=1, padx=(10, 10), pady=(10, 10), sticky=E)
ent_dia.grid(row=4, column=3)

def signo():
    month= str(var.get())
    day= int(ver.get())
    if month=="Marzo" and day>=21 or month=="Abril" and day<=20:
        tkMessageBox.showinfo("Signo","Eres Aries")
    elif month == "Abril" and day >= 21 or month == "Mayo" and day <= 21:
        tkMessageBox.showinfo("Signo", "Eres Tauro")
    elif month == "Mayo" and day >= 22 or month == "Junio" and day <= 21:
        tkMessageBox.showinfo("Signo", "Eres Gemenis")
    elif month=="Junio" and day>=22 or month=="Julio" and day<=22:
        tkMessageBox.showinfo("Signo","Eres Cancer")
    if month=="Julio" and day>=23 or month=="Agosto" and day<=23:
        tkMessageBox.showinfo("Signo","Eres Leo")
    if month=="Agosto" and day>=24 or month=="Septiembre" and day<=23:
        tkMessageBox.showinfo("Signo","Eres Virgo")
    if month=="Septiembre" and day>=24 or month=="Octubre" and day<=23:
        tkMessageBox.showinfo("Signo","Eres Libra")
    if month=="Octubre" and day>=24 or month=="Noviembre" and day<=22:
        tkMessageBox.showinfo("Signo","Eres Escorpion")
    if month=="Noviembre" and day>=23 or month=="Diciembre" and day<=21:
        tkMessageBox.showinfo("Signo","Eres Sagitario")
    if month=="Diciembre" and day>=22 or month=="Enero" and day<=20:
        tkMessageBox.showinfo("Signo","Eres Capricornio")
    if month=="Enero" and day>=21 or month=="Febrero" and day<=18:
        tkMessageBox.showinfo("Signo","Eres Acuario")
    if month=="Febrero" and day>=19 or month=="Marzo" and day<=20:
        tkMessageBox.showinfo("Signo","Eres Piscis")

boton = Button(ventana, text='Signo', command=signo, width=20)
boton.grid(row=5, column=1, padx=(10, 10), pady=(10, 10), sticky=E)

ventana.mainloop()

Practica Usando GUI | Saludador



from Tkinter import *
import tkMessageBox

root  = Tk()
root.geometry("500x500")
root.title("Saludador")

et1 = Label(root, text = "Escribe un nombre para saludar").place(x=160,y=130)
entrada =StringVar()
entrada.set('')
caja11 = Entry(root, textvariable = str (entrada)).place(x=170,y=180)
b1 = Button(root, text = "Saludar", command = lambda: tkMessageBox.showinfo("Message", "Hola " + entrada.get() + "!")) .place(x=200,y=230)

root.mainloop()

Practica Usando GUI | Insertar Peliculas a una Lista



from Tkinter import *

root = Tk()
root.geometry("500x500")
root.title("Peliculas")

def fun():
    x = aux2.get()
    pelis.append(x)
    lol = OptionMenu(root, aux, *pelis).place(x=350, y=140)

et1 = Label(root, text = "Escribe el titulo de una pelicula").place(x=100,y=100)
et2 = Label(root, text = "Peliculas").place(x=350,y=100)
aux=StringVar()
aux.set("")
aux2=StringVar()
pelis = [""]
lol = OptionMenu(root,aux,*pelis).place(x=350,y=140)

c1 = Entry(root, textvariable =aux2).place(x=100,y=140)
b1 = Button(root, text = "Ingresar", command =fun).place(x=100, y=170)

root.mainloop()

Practica Usando GUI | Multiplos x5 x10 x15



# -*- 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

Practica Usando GUI | Mostrar Ruta de un Archivo



from Tkinter import *
from tkFileDialog import askopenfilename

root = Tk()
root.geometry("500x500")
root.title("Mostrar ruta fichero")

et1 = Label(root, text = "Pulsa en el boton y elige una ruta").place(x=150,y=70)

def llamada():
    nombre  = StringVar()
    nombre.set(askopenfilename())
    Entry(root, width = 40, textvariable=nombre).place(x=100, y=100)

Entry(root,width = 40).place(x=100, y=100)
Button(root, text ="...", command = llamada).place(x=370,y=100)

root.mainloop()

Practica Usando GUI | Mostrar y Ocultar GIF



# -*- coding: utf-8 -*-import Tkinter as tk
from Tkinter import *

def btn_hide():
    if b1.winfo_ismapped():
        b1.place_forget()
        b2.configure(text="Mostrar carita", width=15)
    else:
        b1.place(x=70, y=50)
        b2.configure(text="Ocultar carita", width=15)

ventana = Tk()
ventana.geometry('400x400')
ventana.config(bg="black")
ventana.title("Mostrando y ocultando un boton con una imagen")
imgBoton = PhotoImage(file="/home/alberto/Documentos/Proyectos Python/Uso de GUI/Android.gif")
Label(image=imgBoton).pack()

b2 = Button(ventana, text="Ocultar carita", command=btn_hide, fg="black", width=15).pack()
#b2.place(x=130, y=280)

ventana.mainloop()

Practica Usando GUI | Contador de Dinero



from Tkinter import *
import tkMessageBox

def SumMul():
    try:
        _e0= int(v0.get())
        _e0=_e0*.50
        _e1 = int(v1.get())
        _e1 = _e1 * 1
        _e2 = int(v2.get())
        _e2 = _e2 * 2
        _e3 = int(v3.get())
        _e3 = _e3 * 5
        _e4 = int(v4.get())
        _e4 = _e4 * 10
        _e5 = int(v5.get())
        _e5 = _e5 * 20
        _e6 = int(v6.get())
        _e6 = _e6 * 50
        _e7 = int(v7.get())
        _e7 = _e7 * 100
        _e8 = int(v8.get())
        _e8 = _e8 * 200
        _e9 = int(v9.get())
        _e9 = _e9 * 500
        _e10= _e0 + _e1 + _e2 + _e3 + _e4 + _e5 + _e6 + _e7 + _e8 + _e9
        tkMessageBox.showinfo("TOTAL", "El resultado es: "+str(_e10))
    except ValueError:
        tkMessageBox.showwarning("ERROR","Introduce un valor en todos los campos")


v=Tk()
v.title("")
v.geometry("200x350")

vp = Frame(v)
vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0, weight =1)

ET0=Label(vp,text="MONEDAS")
ET0.grid(column=2, row=1)

e0=Label(vp,text="0.50")
e0.grid(column=1, row=3)

e1=Label(vp,text="1.00")
e1.grid(column=1, row=4)

e2=Label(vp,text="2.00")
e2.grid(column=1, row=5)

e3=Label(vp,text="5.00")
e3.grid(column=1, row=6)

e4=Label(vp,text="10.00")
e4.grid(column=1, row=7)

v0  = Entry(vp, width=5, textvariable=e0)
v0.grid(row=3, column=2)

v1  = Entry(vp, width=5, textvariable=e1)
v1.grid(row=4, column=2)

v2 = Entry(vp, width=5, textvariable=e2)
v2.grid(row=5, column=2)

v3  = Entry(vp, width=5, textvariable=e3)
v3.grid(row=6, column=2)

v4  = Entry(vp, width=5, textvariable=e4)
v4.grid(row=7, column=2)

ET1=Label(vp,text="BILLETES")
ET1.grid(column=2, row=9)

e5=Label(vp,text="20.00")
e5.grid(column=1, row=11)

e6=Label(vp,text="50.00")
e6.grid(column=1, row=12)

e7=Label(vp,text="100.00")
e7.grid(column=1, row=13)

e8=Label(vp,text="200.00")
e8.grid(column=1, row=14)

e9=Label(vp,text="500.00")
e9.grid(column=1, row=15)

v5  = Entry(vp, width=5, textvariable=e5)
v5.grid(row=11, column=2)

v6  = Entry(vp, width=5, textvariable=e6)
v6.grid(row=12, column=2)

v7  = Entry(vp, width=5, textvariable=e7)
v7.grid(row=13, column=2)

v8  = Entry(vp, width=5, textvariable=e8)
v8.grid(row=14, column=2)

v9  = Entry(vp, width=5, textvariable=e9)
v9.grid(row=15, column=2)

b = Button(vp, text="TOTAL", command=SumMul)
b.grid(row=17, column=2, padx=(20, 20), pady=(20, 20))

v.mainloop()

Practica Usando GUI | Edad Con Spinbox



import sys
from Tkinter import *
import tkMessageBox

def CalcularEdad():
    Valor = int(CajaEdad.get())
    if (2018-Valor>=18):
        tkMessageBox.showinfo("Felicidades", "Eres Mayor de Edad!")
    elif(2018-Valor<=5):
        tkMessageBox.showinfo("Eehhh?", "Como puedes tener menos de 5  y usar este programa")
    elif((2018-Valor)>8 and (2018-Valor)<18):
        tkMessageBox.showinfo("Alejate!","Aun no posees la edad suficiente para seguir!")

ventana=Tk()
ventana.title("Mayor de edad")
ventana.geometry("600x400")

vp = Frame(ventana) #estamos utilizando el objeto framevp.grid(column=0, row=0, padx =(50,50), pady=(10,10))
vp.grid(column=0,row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weigh=1)
vp.rowconfigure(0, weight =1)

PreguntarEdad = Label(vp, text="Por favor ingrese su fecha de Nacimiento")
PreguntarEdad.grid(column=1,row=1,padx=(10,10),pady=(10,10))

CajaEdad = Spinbox(vp, from_=1980, to=2018,width=10)
CajaEdad.grid(column=2, row=1, padx=(10,10), pady=(10,10), sticky=N+S)

BotonCalcular = Button(vp, text="Calcular!", command=CalcularEdad)
BotonCalcular.grid(column=3, row=1, padx=(10,10), pady=(10,10))

ventana.mainloop()

Practica Usando GUI | Calculadora de Interes Anual



# coding=utf-8
#!/usr/bin/env python
#  -*- coding: utf-8 -*-
import tkMessageBox
from Tkinter import *

def interes():

        v1 = int(ent1.get())
        v2 = int(ent2.get())
        v3 = int(ent3.get())
        r = v1 * v2 / 100
        g=(r * v3)
        f= g + v1
        tkMessageBox.showinfo("","Cuando pasen " +str(v3)+ " años, con un interes de "+ str(v2)+ " usted habra generado "+str(f) + " pesos")
v = Tk()
v.title("Interes")
v.geometry("400x250")

vp= Frame(v)
vp.grid(column=0, row=0, padx=(50,50), pady=(10,10))
vp.columnconfigure(0, weight=1)
vp.rowconfigure(0,weight=1)

e1 = Label(vp, text="Pesos:")
e1.grid(row=2, column=4, padx=(20, 20), pady=(20, 20))

e2 = Label(vp, text="Interes:")
e2.grid(row=3, column=4, padx=(20, 20), pady=(20, 20))

e3 = Label(vp, text="Anos:")
e3.grid(row=4, column=4, padx=(20, 20), pady=(20, 20))

val1 = ""
ent1 = Entry(vp, width=12, textvariable=val1)
ent1.grid(row=2, column=5)

val2 = ""
ent2 = Entry(vp, width=12, textvariable=val2)
ent2.grid(row=3, column=5)

val3 = ""
ent3 = Entry(vp, width=12, textvariable=val3)
ent3.grid(row=4, column=5)

b1 = Button(vp, text="Calcular", command=interes)
b1.grid(row=5, column=5, padx=(20, 20), pady=(20, 20))

v.mainloop()


Practica Usando GUI | Generador de Numeros



from Tkinter import *
from random import *

root = Tk()
root.geometry("500x500")
root.title("Generador de numeros")

def funcion():
    num = randint(int(aux.get()),int(aux2.get()))
    aux3.set(num)

et1 = Label(root, text = "Numero 1").place(x=100,y=100)
et2 = Label(root, text = "Numero 2").place(x=100,y=150)
et3 = Label(root, text = "Numero generado").place(x=100,y=250)

arr1=[1,2,3,4,5,6,7,8,9,10]
arr2 = [1,2,3,4,5,6,7,8,9,10]
aux = StringVar()
aux2 = StringVar()
aux3 = StringVar()
s1 = Spinbox(root,textvariable = aux, values = arr1).place(x=300,y=100)
s2 = Spinbox(root,textvariable = aux2, values = arr2).place(x=300,y=150)

caja = Entry(root, textvariable =aux3).place(x=300,y=250)
b1 = Button(root, text = "Generar",command = funcion).place(x=300,y=300)


root.mainloop()

Practica Usando GUI | Formulario Simple



from Tkinter import *
root = Tk()
root.title('formulario 1')
nombre_label = Label(root,text="Nombre :")
nombre_label.grid(row=1,column=1)
nombre_str = StringVar()
nombre_entry = Entry(root,textvariable=nombre_str)
nombre_entry.grid(row=1,column=2)
last_label= Label(root,text="Apellido : ")
last_label.grid(row=2,column=1)
last_str = StringVar()
last_entry = Entry(root,textvariable=last_str)
last_entry.grid(row=2,column=2)
mail_label = Label(root,text="Email : ")
mail_label.grid(row=3,column=1)
mail_str = StringVar()
mail_entry = Entry(root,textvariable=mail_str)
mail_entry.grid(row=3,column=2)
endfinish = Button(root,text="finalizar",relief=FLAT)
endfinish.grid(row=4,column=2)
root.mainloop()

Practica Usando GUI | Calendario



#!/usr/bin/env phyton

#- * - coding: utf - 8 -*-
#Simple calendario con tkinter


import calendar
import Tkinter as tk
import datetime

# Obtenemos los valores del ano y mes a mostrar

ano = datetime.date.today ().year
mes = datetime.date.today ().month


def writeCalendar(ano, mes):
    # Asignamos el ano y mes al calendario

    str1 = calendar.month (ano, mes)
    label1.configure (text=str1)

def mesAnterior():
    global mes, ano
    mes -= 1

    if ano == 0:

     mes = 12

    ano -= 1
    writeCalendar (ano, mes)


def mesSiguiente():
    global mes, ano
    mes += 1

    if mes == 13:
     mes = 1

    ano += 1

    writeCalendar (ano, mes)


root = tk.Tk ()
root.title ("Calendario")

# Lo posicionamos en un label

label1 = tk.Label (root, text="", font=('courier', 40, 'bold'), bg='white', justify=tk.LEFT)
label1.grid (row=1, column=1)

# ponemos los botones dentro un Frame

frame = tk.Frame (root, bd=5)
anterior = tk.Button (frame, text="Anterior", command=mesAnterior)
anterior.grid (row=1, column=1, sticky=tk.W)
siguiente = tk.Button (frame, text="Siguiente", command=mesSiguiente)
siguiente.grid (row=1, column=2)
frame.grid (row=2, column=1)

writeCalendar (ano, mes)

# ejecutamos el evento loop

root.mainloop ()

App Grafica | Piedra, Papel o Tijera



import tkMessageBox
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'
        Label(ventana, text='elegiste piedra', font=("agency fb", 12)).place(x=50, y=220)
        imagen1 = PhotoImage(file='piedra.gif')  # utilizo una imagen para mostrar mi seleccion
        Label(ventana, image=imagen1).place(x=50, y=300)  # muestro esa image a traves de un label
        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='piedravs.gif')  # eligo la imagen determinada
            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='papelvs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            showinfo(title='resultado ', message='perdiste')
        else:
            imagen2 = PhotoImage(file='tijeravs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            showinfo(title='resultado', message='Ganaste')

    elif decision_usuario == 2:
        imagen1 = PhotoImage(file='papel.gif')
        Label(ventana, image=imagen1).place(x=50, y=300)
        Label(ventana, text='elegiste papel', font=("agency fb", 12)).place(x=50, y=220)
        Label(ventana, text=('la cpu eligio ' + decisioncpu), font=("agency fb", 12)).place(x=300, y=220)

        if decisioncpu == 'piedra':
            imagen2 = PhotoImage(file='piedravs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            print 'haz ganado pax'
            showinfo(title='resultado ', message='Ganaste')
        elif decisioncpu == 'papel':
            imagen2 = PhotoImage(file='papelvs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            print 'empate'
            showinfo(title='resultado', message='empate')
        else:
            imagen2 = PhotoImage(file='tijeravs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            print 'haz perdido!!!!'
            showinfo(title='resultado ', message='perdiste')

    elif decision_usuario == 3:
        imagen1 = PhotoImage(file='tijera.gif')
        Label(ventana, image=imagen1).place(x=50, y=300)
        Label(ventana, text='elegiste tijera', font=("agency fb", 12)).place(x=50, y=220)
        Label(ventana, text=('la cpu eligio ' + decisioncpu), font=("agency fb", 12)).place(x=300, y=220)
        if decisioncpu == 'piedra':
            imagen2 = PhotoImage(file='piedravs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            showinfo(title='resultado ', message='perdiste')
        elif decisioncpu == 'papel':
            imagen2 = PhotoImage(file='papelvs.gif')
            Label(ventana, image=imagen2).place(x=250, y=300)
            showinfo(title='resultado ', message='ganaste')
        else:
            imagen2 = PhotoImage(file='tijeravs.gif')
            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="ELIJA 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()

App Grafica | Blackjack


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

#carpetaraiz=os.path.dirname(__file__)
carpetaraiz=os.path.dirname("/home/alberto/Documentos/Proyectos Python/")
#print carpetaraiz

DirCartas = carpetaraiz+"/Poker Cards/PNG/"
continuar = 1
#----------------------------Variables Globales-------------------------------
imagendeck = []
allcards = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]
allsymbols = ["H","S","C","D"]
labelsarray = []
imagenes = []
indice = 0
#numerocolumna = 1
puntajetotal = 0
contadorposicion = 0
#print DirCartas

#----------Metodo para mostrar imagenes en Pantalla---------------------
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
    return ImageTk.PhotoImage(img)
    #imagen = ImageTk.PhotoImage(img) #la convierto a un formato soportado por los widgets de tkinter
    #return imagen

def ReiniciarJuego():
    opcion = tkMessageBox.askyesno("Retry?", "Quisieras volver a Intentarlo?")

    if(opcion==True):
        global indice, puntajetotal, contadorposicion, totalmarcador
        del labelsarray[:]
        del imagenes[:]
        indice = 0
        puntajetotal = 0
        contadorposicion = 0
        totalmarcador.config(text = "0")

    else:
        exit()


def TerminarJugada():
    opcion=tkMessageBox.askokcancel("Terminar Jugada", "Si sales ahora perderas el juego...")

    if(opcion==True):
        ReiniciarJuego()

def InicioJuego():
    global TextoBoton, contenedor, numerocolumna, indice, puntajetotal, contadorposicion
    global Botoniniciar, totalmarcador

    Botoniniciar.config(width = 43)
    finishButton = Button(contenedor, text="Terminar", font=("Arial", 10), width=15, command = TerminarJugada)
    finishButton.place(x=567, y=376)

    card = random.choice(allcards)
    palo = random.choice(allsymbols)
    carta = card+palo
    imagenes.append(setimagen(DirCartas+carta+".png", 150, 180))
    labelcartas = Label(framecartas, image = imagenes[indice])
    #labelcartas.grid(row = 1, column = numerocolumna, padx = 10, pady = 10)
    labelcartas.place(x=contadorposicion, y=0)

    contadorposicion+=130
    #numerocolumna+= 1
    indice+=1
    labelsarray.append(labelcartas)

    if(card == "10" or card == "J" or card == "Q" or card == "K"):
        puntajetotal+=10
    elif(card == "A"):
        opcion = tkMessageBox.askquestion("Elija el valor del As", "Quiere que valga 11?\nYes = 11 | No = 1")
        if opcion=="yes":
            puntajetotal+=11
        else:
            puntajetotal+=1

    else:
        puntajetotal+= int(card)

    totalmarcador.config(text = str(puntajetotal))

    if(puntajetotal==21):
        tkMessageBox.showinfo("BLACKJACK!! FELICIDADES!", "Has hecho un BLACKJACK!\nTotal: 21")
        ReiniciarJuego()
    elif(puntajetotal>21):
        tkMessageBox.showerror("HAS PERDIDO!",'Te has pasado! Vuelve a Intentarlo')
        ReiniciarJuego()

#--------------Metodo para mostrar el Marcador al Ingresar el Nombre--------------------
def Marcador(nombre):
    global labelentry, BotonOK, entrynombre, Botoniniciar
    global nombrejugador, TextoBoton, totalmarcador
    #nombrejugador = nombre
    BotonOK.destroy()
    entrynombre.destroy()

    TextoBoton.set("Pedir Carta")
    Botoniniciar = Button(contenedor, textvariable=TextoBoton, font=("Arial", 10), width=45, command = InicioJuego)
    Botoniniciar.place(x=200, y=376)

    framemarcador = Frame(contenedor, bg="grey")
    framemarcador.config(bd=3, relief="ridge")
    framemarcador.place(width=154, height=316, x=18, y=90)

    titulomarcador = Label(framemarcador, text = "Marcador",font = ("Arial",20, "bold"), bg = "grey")
    titulomarcador.grid(row=1, column=1, padx = 10, pady = 10, columnspan=3)

    j1marcador = Label(framemarcador, text = "Jugador 1:", font = ("Arial",10), bg="grey")
    j1marcador.grid(row=2, column=1, sticky = "E")

    nombremarcador = Label(framemarcador, text = nombre, font = ("Arial",10), bg = "grey")
    nombremarcador.grid(row=2, column=2, sticky = "W")

    totallabel = Label(framemarcador, text = "Total:", font = ("Arial",10,"bold"), bg = "grey")
    totallabel.grid(row=3, column = 1, sticky = "E" )

    totalmarcador = Label(framemarcador, text= str(puntajetotal), font=("Arial", 10, "bold"), bg="grey")
    totalmarcador.grid(row=3, column=2, sticky="W")

    # Creacion de un Hilo para que tenga un minimo retraso entre cambio de texto
    #hilo=threading.Thread(target=mensaje, args=("Buenas, Jugadores, Vamos a empezar la Partida de BlackJack",))
    #hilo.start()
    labelentry.config(text = "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack")
#----------------Metodo que contiene la funcionalidad del Hilo------------------------------
"""def mensaje(msg):
        global labelentry
        time.sleep(3)
        labelentry.config(text=msg)"""

#--------Metodo para mostrar la baraja y los componentes para Ingresar el nombre----------
def IniciarComponentes():
    global contenedor, nombrejugador, labelentry, TextoBoton
    global entrynombre, BotonOK

    DeckDir = carpetaraiz + "/Poker Cards/Images/Deck.png"
    imagendeck.append(setimagen(DeckDir,180,230))
    Decklabel = Label(contenedor, image = imagendeck[0])
    Decklabel.place(x=275,y=120)

    labelentry = Label(contenedor, text = "Ingrese el nombre del Jugador: ", font = ("Arial",10))
    labelentry.place(x=200, y=350)
    nombre = StringVar()
    entrynombre = Entry(contenedor, textvariable = nombre)
    entrynombre.place(x=200, y=380)
    entrynombre.config(width = 40, font = ("Arial",10))
    nombrejugador.set(nombre.get())
    print nombrejugador.get()

    TextoBoton = StringVar()
    TextoBoton.set("OK")
    BotonOK = Button(contenedor, textvariable = TextoBoton, font = ("Arial", 10), width = 10)
    BotonOK.place(x=489, y=376)
    #if(nombrejugador.get()!=""):
    BotonOK.config(command = lambda :Marcador(str(nombre.get())))

#----------------------Creacion de Ventana------------------------
ventana = Tk()
ventana.title("BlackJack Game v 0.1")
ventana.config(bg="grey")
#ventana.iconbitmap(carpetaraiz+"\Poker Cards\Images\Poker Icon 1.ico")
contenedor = Frame(ventana, width = 720, height = 640)
contenedor.pack(fill = "y", expand = True)
"""bgimagen = Image.open(carpetaraiz + "/Poker Cards/Images/Poker Table (1).png")
ph = ImageTk.PhotoImage(bgimagen)
background_image = Label(contenedor, image = ph)
background_image.place(x=0,y=0)"""

framecartas = Frame(contenedor)
framecartas.place(width=680, height=210, x=18, y=417)
#framecartas.config(bd=3, relief="ridge")

Etitulo =Label(contenedor,text="BlackJack", font=("Arial",40,"bold"))
Etitulo.place(x=235,y=20)

BotonStart = Button(contenedor, text = "Start Game", font = ("Arial", 10), width = 30, bg = "grey",command=IniciarComponentes)
BotonStart.place(x=240, y=90)

nombrejugador= StringVar()
nombrejugador.set("")
#----------------------Metodo para saber las cordenadas de la pantalla haciendo un Click--------
def getorigin(eventorigin):
    global x0,y0
    x0 = eventorigin.x
    y0 = eventorigin.y
    print(x0,y0)
#mouseclick event
contenedor.bind("button 1",getorigin)

ventana.mainloop()

App Grafica | Adivina el Numero



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

    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)
    Label(contenedor,text="La suerte va a decir el numero de intentos que tienes",font=("Times New Roman",15)).place(x=0,y=207)

    Label(contenedor,text="Tienes "+str(intentos)+" intentos",font=("Times New Roman",15)).place(x=90,y=267)
    parte_2()

def parte_2():
    Label(contenedor, text="Intenta adivinar: ", font=("Times New Roman", 15)).place(x=90, y=337)
    global entrada2
    entrada2= StringVar()
    Entry(contenedor, textvariable=entrada2).place(x=242, y=342)

    b2 = StringVar()
    b2.set("Verificar respuesta")
    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()

App Grafica | Ataca Los Orcos



# -*- coding: utf-8 -*-

import random
from Tkinter import Tk, Label, Radiobutton, PhotoImage, IntVar
import tkMessageBox as messagebox


class JuegoChozas:
    def __init__(self, parent):
        self.imagen_fondo = PhotoImage(file="Jungle_small_2.gif")
        self.imagen_choza = PhotoImage(file="Hut_small_2.gif")

        self.ancho_choza = 60
        self.alto_choza = 140
        self.container = parent

        self.Chozas = []
        self.result = ""

        self.ocupar_chozas()

        self.setup()

    def ocupar_chozas(self):
        ocupantes = ['enemigo', 'amigo', 'vacia']
        while len(self.Chozas) < 5:
            computer_choice = random.choice(ocupantes)
            self.Chozas.append(computer_choice)
        print("Los ocupantes de las chozas son:", self.Chozas)

    def entrar_choza(self, numero_choza):
        print("Entrando en la choza #:", numero_choza)
        ocupante_choza = self.Chozas[numero_choza-1]
        print("El ocupante de la choza es: ", ocupante_choza)

        if ocupante_choza == 'enemigo':
            self.result = "Enemigo visto en la choza # %d \n\n" % numero_choza
            self.result += "Has perdido :( Mucha suerte la próxima vez!"
        elif ocupante_choza == 'vacia':
            self.result = "La Choza # %d está vacia\n\n" % numero_choza
            self.result += "Enhorabuena! Has ganado!!!"
        else:
            self.result = "Amigo visto en la choza # %d \n\n" % numero_choza
            self.result += "Enhorabuena! Has ganado!!!"

        self.anunciar_ganador(self.result)

    def crear_widgets(self):

        self.var = IntVar()
        self.background_label = Label(self.container,
                                      image=self.imagen_fondo)
        txt = "Selecciona una choza en la que entrar. Ganarás si:\n"
        txt += "La choza está vacia o si su ocupante es tu aliado, de lo contrario morirás"
        self.info_label = Label(self.container, text=txt, bg='white')
        # Creamos un dicionario con las opciones para las imagenes de las chozas
        r_btn_config = {'variable': self.var,
                        'bg': '#8AA54C',
                        'activebackground': 'green',
                        'image': self.imagen_choza,
                        'height': self.alto_choza,
                        'width': self.ancho_choza,
                        'command': self.radio_btn_pressed}

        self.r1 = Radiobutton(self.container, r_btn_config, value=1)
        self.r2 = Radiobutton(self.container, r_btn_config, value=2)
        self.r3 = Radiobutton(self.container, r_btn_config, value=3)
        self.r4 = Radiobutton(self.container, r_btn_config, value=4)
        self.r5 = Radiobutton(self.container, r_btn_config, value=5)

    def setup(self):
        self.crear_widgets()
        self.setup_layout()

    def setup_layout(self):
        self.container.grid_rowconfigure(1, weight=1)
        self.container.grid_columnconfigure(0, weight=1)
        self.container.grid_columnconfigure(4, weight=1)
        self.background_label.place(x=0, y=0, relwidth=1, relheight=1)
        self.info_label.grid(row=0, column=0, columnspan=5, sticky='nsew')
        self.r1.grid(row=1, column=0)
        self.r2.grid(row=1, column=2)
        self.r3.grid(row=1, column=4)
        self.r4.grid(row=4, column=2)
        self.r5.grid(row=4, column=0)

    def anunciar_ganador(self, data):
        messagebox.showinfo("¡Atención!", message=data)

    # Handle Events
    def radio_btn_pressed(self):
        self.entrar_choza(self.var.get())

if __name__ == "__main__":

    mainwin = Tk()
    WIDTH = 1280
    HEIGHT = 700
    mainwin.geometry("%sx%s" % (WIDTH, HEIGHT))
    mainwin.resizable(0, 0)
    mainwin.title("Ataca a los orcos V 2.0.0 - El Videojuego")
    game_app = JuegoChozas(mainwin)
    mainwin.mainloop()

App Grafica | Imagenes Aleatorias



import os #libreria para obtener rutas de direcciones
import random # Generar mumeros aleatorios
import threading #Libreria Para manejar hilos
from Tkinter import *#GUI,Label,botones,menu,entry,Tk,frame
from PIL import Image, ImageTk#Tratar imagenes, PNG
import time #Para tiempos o espera o esperar o wait segundos
import pygame # Para juedos 2D y 3D

"""Variables globales"""
imagen=0
stop=0
dir = os.path.dirname("/home/alberto/Documentos/Proyectos Python/Aleatorio/")
Ccartas=dir+"/png/" #establece la ruta hacia las imagenes de cartas
Csonido=dir+"/mp3/" #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
    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 = ["Gato", "Perro", "Casa", "Lapiz", "Gusano", "3D", "Flor", "Carro"]

    while True:
        nombre=str(cartas.index(random.choice(cartas))+1)
        carta = Ccartas + nombre + ".png"
        Limagen.config(image=setimagen(carta,400,400))
        Tetiqueta.set(cartas[int(nombre)-1])
        sonido=Csonido+nombre+".mp3"
        reproducirsonido(sonido)
        time.sleep(float(spin.get()))
        if stop==1:
            break


ventana=Tk()#Creamos una ventana tipo Tk()
ventana.title("Imagenes Aleatorias")
ventana.geometry("700x700")
#ventana.config(bg="gray")#con config y Bg es al fondo del color de la ventana
filename = PhotoImage(file = "/home/alberto/Documentos/LV2.png")
background_label = Label(ventana, image=filename)
background_label.place(x=-610, y=-580)#, relwidth=1, relheight=1)
#ventana=Frame(ventana,width=700,height=700)#Poner un frame arriba de la ventana o Tk()
#ventana.pack()

Etitulo=Label(ventana,text="Imagenes Random",font=("Arial",40,"bold"),fg='white',bg='red').place(x=120,y=20)

Etiempo=Label(ventana,text="Tiempo Entre Imagenes: ",font=("Arial",12,"bold"),fg='white',bg='red')
Etiempo.place(x=100,y=100)

spin=Spinbox(ventana,values=[2,3,4,5,6,7,8,9,10,11,12],font=("Arial",12,"bold"))
spin.place(x=295,y=101)

Limagen=Label(ventana)
Limagen.place(x=250,y=180)

TBoton=StringVar()
TBoton.set("Jugar")
Bplay=Button(ventana,textvariable=TBoton,command=play)
Bplay.place(x=500,y=98)

Tetiqueta=StringVar()
Enombre=Label(ventana,textvariable=Tetiqueta,font=("Arial",40,"bold"),fg='white',bg='red')
Enombre.place(x=250,y=500)
pygame.init()
ventana.mainloop()

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

Juego en Consola | Blackjack



import random
import time

global cartas
cartas = ["A",2,3,4,5,6,7,8,9,10,"J","Q","K"]

global nombrejugadores
nombrejugadores = []

#Funciones
def TurnoCartas(nombre):
    total = 0
    eleccion = 1
    i = 1
    deck = []
    print "-Turno de ",nombre,": "

    while (eleccion!=0 & total<21 0="" 11="" 1="" break="" deck.append="" elif="" else:="" i="" if="" ncarta="" numero="" numerosnaturales="[2,3,4,5,6,7,8,9,10]" por="" print="" que="" quieres="" return="" tenga="" time.sleep="" total="" tramposo="" tu="" u="" ue="" valor="">1):
            print "-Total: ", total,"\n"

        if(total<21 0="" 1="" 2="" 3="" 72="" artas:="" blackjack="" carta="" cartas="" deck.append="" deck="" def="" del="" el="" eleccion="0" elif="" else:="" es:="" for="" ganador2j="" ganador="" has="" hecho="" i="" if="" in="" inalizar="" jugador="" l="" mala="" mirar="" n="" nombre="" nombrejugadores.append="" nombrejugadores="" ntroduce="" numero="" numjugadores="" otra="" pedir="" perdido="" print="" range="" respuesta="=2):" return="" suerte="" time.sleep="" total="" turno="" tus="" un="" while="">J2):
        print nombre[0]," Con un Total de ",J1
    elif(J2>J1):
        print nombre[1]," Con un Total de ",J2
    elif(J1==J2):
        print "\nHay un EMPATE!! con un Total de ",J1," en Ambos Jugadores!!"
    else:
        print "\nLos 2 Jugadores PERDIERON!"

def Ganador3J(J1,J2,J3, nombre):
    print "El Ganador es: ",
    time.sleep(3)

    if (J1 > J2 and J1>J3):
        print nombre[0], " Con un Total de ", J1
    elif (J2 > J1 and J2>J3):
            print nombre[1], " Con un Total de ", J2
    elif (J3 > J1 and J3>J2):
            print nombre[2], " Con un Total de ", J3
    elif(J1==J2 and J1!=J3 and J2!=J3):
        print "\nHay un EMPATE!! entre ",nombre[0]," y ",nombre[1]," con un Total de ", J1, " en los Jugadores!!"
    elif (J2 == J3 and J2 != J1 and J3!=J1):
        print "\nHay un EMPATE!! entre ", nombre[1], " y ", nombre[2], " con un Total de ", J2, " en los Jugadores!!"
    elif (J1 == J3 and J1 != J2 and J3!=J2):
        print "\nHay un EMPATE!! entre ", nombre[0], " y ", nombre[2], " con un Total de ", J1, " en los Jugadores!!"
    elif (J1 == J2 and J2 == J3):
        print "\nHay un EMPATE!! con un Total de ", J1, " en TODOS los Jugadores!!"
    else:
        print "\nLos 3 Jugadores PERDIERON!"

#MAIN
continuar = 1
while continuar != 0:
    print "JUEGO DE BLACK JACK"
    print "-"*72
    numjugadores = input("Numero de Jugadores: 1) 1 Jugador  2) 2 Jugadores  3) 3 Jugadores\n")
    NombreJugadores(numjugadores)

    if(numjugadores==1):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        print "Inicia el Jugador numero 1"
        time.sleep(2)
        Jugador1 = TurnoCartas(nombrejugadores[0])
        print "Total del Jugador = ",Jugador1,"\n"
        time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores==2):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ",i+1
            time.sleep(2)
            if(i==0):
                Jugador1 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador2 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador2J(Jugador1,Jugador2,nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1 , nombrejugadores[1]: Jugador2}
        # print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ",max(jugadores.values())
        #time.sleep(3)

        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores == 3):
        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        Jugador3 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ", i + 1
            time.sleep(2)
            if (i == 0):
                Jugador1 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            elif(i == 1):
                Jugador2 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador3 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador3J(Jugador1, Jugador2, Jugador3, nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1, nombrejugadores[1]: Jugador2, nombrejugadores[2]: Jugador3}
        #print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ", max(jugadores.values())
        #time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]

        print "-" * 72

Juego en Consola | Adivina el numero


from random import *
import random
import time
import textwrap


msg = ("El siguiente juego consiste en adivinar el numero en que esta pensando la computadora"
       " es importante mencionar que el numero de intentos se establece conforme a la suerte"
       " en el caso de que menciones un numero por debajo del que se busca aparece un mensaje"
       " diciendo que tu estimacion es muy baja, de igual manera sucede en sentido contrario"
       " solo que aparece un mensaje diciendo que la estimacion es muy alta"
       " si llegas a agotar el numero de intentos pierdes el juego, y si lo deseas puedes volver a jugar mucha suerte")

print(textwrap.fill(msg, width = 70))
print("\nBienvenido al juego adivina el numero")
n=raw_input ("Ingresa tu nombre: ")

back=1
while back==1:
    linea_punteada = 70 * '-'
    print(linea_punteada)

    print(n+" estoy pensando en un numero entre 1 y 5 " + "crees poder adivinarlo?")
    print("La suerte va a decir el numero de intentos que tienes")
    time.sleep(2)
    print "*"
    time.sleep(2)
    print "**"
    time.sleep(2)
    print "***"

    aux=0
    arr=[1,2,3,4,5]
    intentos=random.choice(arr)
    num=randint(1,5)
    print ("Tienes "+str(intentos)+" intentos")


    while auxnum:
            print("Tu estimacion es muy alta")

         elif est==num:
            break
    if num==est:
        print("Good Job "+n+" has adivinado el numero")
    elif num!=est:
        print("Perdiste "+n+" el numero que estaba pensando es:",num)

    print ("Desea volver a jugar? 1.-Si/2.-No")
    back=input("Respuesta: ")

Juego en Consola | Ataca Los Orcos


# -*- coding: utf-8 -*-
import random
import textwrap

if __name__ == '__main__':
    seguir_jugando = 1
    ocupantes = ['enemigo','amigo','no ocupada']
    ancho_linea = 72
    linea_punteada = ancho_linea * '-'
    print(linea_punteada)
    print("\033[1m"+ "Ataca a los Orcos V0.0.1" + "\033[0m")

    msg = ("La guerra entre los humanos y sus arqueros enemigos, los Orcos, estaba en el aire."
          "Un enorme ejército de orcos se dirigía hacia los territos de los humanos. Destruían"
          "prácticamente todo en su camino. Los grandes reyes de la raza humana, se unieron para"
          " derrotar a su peor enemigo, era la gran batalla de su tiempo. Sir Gandorel, uno de los "
          "valientes caballeros que guardan las llanuras meridionales, inició un largo viaje hacia el este"
          ", a través de un desconocido bosque espeso. Durante dos días y dos noches, se movió con cautela "
          "a través del grueso bosque. En su camino, vio un pequeño asentamiento aislado. Cansado y con "
          "la esperanza de reponer su stock de alimentos, decidió tomar un desvío. Cuando se acercó al pueblo,"
          "vio cinco chozas. No había nadie alrededor. En ese instante, decidió entrar en un choza...")

    print(textwrap.fill(msg, width = ancho_linea))
    print("\033[1m"+"Misión:"+"\033[0m")
    print("Elige una choza donde poder descansar...")
    print("\033[1m"+"NOTA:"+"\033[0m")
    print("¡Cuidado! Hay enemigos rondando la zona")
    print(linea_punteada)

    while seguir_jugando == 1:
        chozas = []
        while len(chozas) < 5: #Definimos un número de asentamiento para establecerlo como amigo o enemigo
            eleccion_aleatoria = random.choice(ocupantes)
            chozas.append(eleccion_aleatoria)

        msg = "\033[1m" + "Elige una choza, introduce un número entre 1 y 5: " + "\033[0m"
        decision_usuario = input("\n"+msg)
        idx = int(decision_usuario)

        #Pasamos a descubrir cuales son los ocupantes del emplazamiento

        print("Descubriendo los ocupantes...")
        msg=""
        for i in range(len(chozas)):
            ocupantes_info = "<%d:%s>"%(i+1, chozas[i])
            if i+1 == idx:
                ocupantes_info = "\033[1m" + ocupantes_info + "\033[0m"
            msg += ocupantes_info + " "
        print("\t" + msg)
        print(linea_punteada)
        print("\033[1m" + "Entrando en la choza %d..." %idx + "\033[0m")

        if chozas[idx-1] == 'enemigo':
            print("\033[1m" + "Sir Gandorel ha muerto asesinado por una manada de orcos (Mucha suerte la próxima vez)" + "\033[0m")
        else:
            print("\033[1m" + "¡Felicidades! Sir Gandorel ha podido descansar con éxito" + "\033[0m")
        print(linea_punteada)
        seguir_jugando = input("¿Quieres jugar de nuevo? Si(1)/No(0):")

Programa - Poligonos en Botones | Alberto Vega



from Tkinter import *
v0 = Tk()
v0.title("Poligonos Alberto Vega")
v0.config(bg="Dimgrey")
v0.geometry("500x500")

def mostrar(num):
    v1 = Toplevel(v0)
    v1.title("Poligono")
    #v1.geometry("500x500")

    if num==1:
        canvas = Canvas(v1, width=150, height=180, bg='dimgrey')
        canvas.pack(expand=YES, fill=BOTH)

        canvas.create_polygon(40, 10, 90, 10, 90, 20, 120, 20, 120, 30, 30, 30, 30, 20, 40, 20, width=2, fill="RED", outline="BLACK")
        canvas.create_polygon(30, 30, 100, 30, 100, 40, 120, 40, 120, 50, 130, 50, 130, 60, 120, 60, 120, 70, 110, 70, 110, 80, 40, 80,
                              40, 70, 20, 70, 20, 40, 30, 40, width=2, fill="DARKORANGE", outline="BLACK")
        canvas.create_polygon(30, 80, 90, 80, 90, 90, 120, 90, 120, 100, 130, 100, 130, 110, 110, 110, 110, 120, 100, 120, 100, 130,
                              110, 130, 110, 150, 80, 150, 80, 140, 60, 140, 60, 150, 30, 150, 30, 130, 40, 130, 40, 120, 30, 120, 30, 110,
                              10, 110, 10, 100, 20, 100, 20, 90, 30, 90, width=2, fill="SaddleBROWN", outline="BLACK")
        canvas.create_polygon(50, 80, 60, 80, 60, 100, 80, 100, 80, 90, 90, 90, 90, 110, 100, 110, 100, 130, 110, 130, 110, 150, 80, 150,
                              80, 140, 60, 140, 60, 150, 30, 150, 30, 130, 40, 130, 40, 110, 50, 110, width=2, fill="RED", outline="BLACK")
        canvas.create_polygon(10, 110, 30, 110, 30, 120, 40, 120, 40, 130, 30, 130,
                              30, 140, 10, 140, width=2, fill="orange", outline="BLACK")
        canvas.create_polygon(130, 110, 130, 140, 110, 140, 110, 130, 100, 130,
                              100, 120, 110, 120, 110, 110, width=2, fill="orange", outline="BLACK")
        canvas.create_polygon(50, 150, 50, 170, 10, 170, 10, 160,
                              20, 160, 20, 150, width=2, fill="saddlebrown", outline="BLACK")
        canvas.create_polygon(100, 150, 100, 170, 140, 170, 140, 160,
                              130, 160, 130, 150, width=2, fill="saddlebrown", outline="BLACK")
        canvas.create_rectangle(80, 110, 90, 120, width=2, fill="yellow", outline="BLACK")
        canvas.create_rectangle(50, 110, 60, 120, width=2, fill="yellow", outline="BLACK")
        canvas.create_polygon(80, 70, 120, 70, 120, 60, 100, 60, 100, 50, 90, 50, 90, 30, 80, 30, 80, 50, 90, 50, 90,
                              60,
                              80, 60, width=2, fill="saddlebrown", outline="black")
        canvas.create_polygon(30, 40, 20, 40, 20, 70, 40, 70, 40, 60, 30, 60, 30, 30, 60, 30, 60, 40, 50, 40, 50, 50,
                              60, 50,
                              60, 60, 40, 60, 40, 40, width=2, fill="saddlebrown", outline="black")

    elif num==2:
        canvas = Canvas(v1, width=350, height=300, bg='white')
        canvas.pack(expand=YES, fill=BOTH)
        canvas.create_polygon(100, 50, 250, 50, 300, 100, 175, 225, 50, 100, 100, 50, width=3, fill='yellow', outline='black')

    elif num==3:
        canvas = Canvas(v1, width=250, height=150, bg='light blue')
        canvas.pack(expand=YES, fill=BOTH)
        canvas.create_polygon(20, 20, 20, 40, 50, 40, 50, 70, 30, 70, 30, 80, 20, 80, 20, 100, 50, 100, 80, 90, 100, 90,
                              110, 100, 130, 100, 140, 90, 160, 90, 170, 100, 180, 100, 180, 110, 200, 110, 190, 100, 190,
                              60, 200, 60, 200, 50, 150, 50, 150, 40, 160, 40, 160, 30, 130, 30, 130, 40, 140, 40, 140, 50,
                              100, 50, 100, 20, fill='brown', outline='white')
        canvas.create_oval(60, 90, 110, 120, fill='black', outline='black')
        canvas.create_oval(120, 90, 170, 120, fill='black', outline='black')
        canvas.create_rectangle(60, 40, 80, 60, fill='black', outline='black')
        canvas.create_oval(140, 10, 150, 20, fill='black', outline='black')
        canvas.create_oval(120, 10, 130, 20, fill='black', outline='black')
        canvas.create_oval(110, 10, 120, 20, fill='black', outline='black')

    v1.deiconify()

def ejecutar(f):
    v0.after(200, f)

b1 = Button(v0, text="Mostrar Mario Bros", command=lambda: ejecutar(mostrar(1)))
b1.pack()
b2 = Button(v0, text="Mostrar Diamante", command=lambda: ejecutar(mostrar(2)))
b2.pack()
b3 = Button(v0, text="Mostrar Tren", command=lambda: ejecutar(mostrar(3)))
b3.pack()
v0.mainloop()

Programa - Menú de Poligonos | Alberto Vega



#!/usr/bin/env python
# -*- coding: utf-8 -*-
from Tkinter import *

def Mario():
    v1 = Toplevel(v0)
    v1.title("Alberto Vega")
    #v1.config(bg="dimgrey")
    v1.geometry("150x180")

    canvas = Canvas(v1, width=390, height=350, bg='dimgrey')
    canvas.pack(expand=YES, fill=BOTH)

    canvas.create_polygon(40, 10, 90, 10, 90, 20, 120, 20, 120, 30, 30, 30, 30, 20, 40, 20, width=2, fill="RED", outline="BLACK")
    canvas.create_polygon(30, 30, 100, 30, 100, 40, 120, 40, 120, 50, 130, 50, 130, 60, 120, 60, 120, 70, 110, 70, 110, 80, 40, 80,
                          40, 70, 20, 70, 20, 40, 30, 40, width=2, fill="DARKORANGE", outline="BLACK")
    canvas.create_polygon(30, 80, 90, 80, 90, 90, 120, 90, 120, 100, 130, 100, 130, 110, 110, 110, 110, 120, 100, 120, 100, 130,
                          110, 130, 110, 150, 80, 150, 80, 140, 60, 140, 60, 150, 30, 150, 30, 130, 40, 130, 40, 120, 30, 120, 30, 110,
                          10, 110, 10, 100, 20, 100, 20, 90, 30, 90, width=2, fill="SaddleBROWN", outline="BLACK")
    canvas.create_polygon(50, 80, 60, 80, 60, 100, 80, 100, 80, 90, 90, 90, 90, 110, 100, 110, 100, 130, 110, 130,
                          110, 150, 80, 150, 80, 140, 60, 140, 60, 150, 30, 150, 30, 130, 40, 130, 40, 110, 50, 110,
                          width=2, fill="RED", outline="BLACK")
    canvas.create_polygon(10, 110, 30, 110, 30, 120, 40, 120, 40, 130, 30, 130,
                          30, 140, 10, 140, width=2, fill="orange", outline="BLACK")
    canvas.create_polygon(130, 110, 130, 140, 110, 140, 110, 130, 100, 130,
                          100, 120, 110, 120, 110, 110, width=2, fill="orange", outline="BLACK")
    canvas.create_polygon(50, 150, 50, 170, 10, 170, 10, 160,
                          20, 160, 20, 150, width=2, fill="saddlebrown", outline="BLACK")
    canvas.create_polygon(100, 150, 100, 170, 140, 170, 140, 160,
                          130, 160, 130, 150, width=2, fill="saddlebrown", outline="BLACK")
    canvas.create_rectangle(80, 110, 90, 120, width=2, fill="yellow", outline="BLACK")
    canvas.create_rectangle(50, 110, 60, 120, width=2, fill="yellow", outline="BLACK")
    canvas.create_polygon(80, 70, 120, 70, 120, 60, 100, 60, 100, 50, 90, 50, 90, 30, 80, 30, 80, 50, 90, 50, 90, 60,
                          80, 60, width=2, fill="saddlebrown", outline="black")
    canvas.create_polygon(30, 40, 20, 40, 20, 70, 40, 70, 40, 60, 30, 60, 30, 30, 60, 30, 60, 40, 50, 40, 50, 50, 60, 50,
                          60, 60, 40, 60, 40, 40, width=2, fill="saddlebrown", outline="black")
    v1.deiconify()
def Diamante():
    v1 = Toplevel(v0)
    v1.title("Pedro Maldonado")
    #v1.config(bg="dimgrey")
    v1.geometry("350x350")

    canvas = Canvas(v1, width=300, height=200, bg='white')
    canvas.pack(expand=YES, fill=BOTH)

    canvas.create_polygon(100, 50, 250, 50, 300, 100, 175, 225, 50, 100, 100, 50, width=3, fill='yellow', outline='black')

    v1.deiconify()
def Tren():
    v1 = Toplevel(v0)
    v1.title("Humberto Perez")
    #v1.config(bg="black")
    v1.geometry("350x350")

    canvas = Canvas(v1, width=300, height=300, bg='light blue')
    canvas.pack(expand=YES, fill=BOTH)

    canvas.create_polygon(20, 20, 20, 40, 50, 40, 50, 70, 30, 70, 30, 80, 20, 80, 20, 100, 50, 100, 80, 90, 100, 90, 110, 100, 130, 100,
                         140, 90, 160, 90, 170, 100, 180, 100, 180, 110, 200, 110, 190, 100, 190, 60, 200, 60, 200, 50, 150, 50, 150, 40,
                         160, 40, 160, 30, 130, 30, 130, 40, 140, 40, 140, 50, 100, 50, 100, 20, fill='brown', outline='white')
    canvas.create_oval(60, 90, 110, 120, fill='black', outline='black')
    canvas.create_oval(120, 90, 170, 120, fill='black', outline='black')
    canvas.create_rectangle(60, 40, 80, 60, fill='black', outline='black')
    canvas.create_oval(140, 10, 150, 20, fill='black', outline='black')
    canvas.create_oval(120, 10, 130, 20, fill='black', outline='black')
    canvas.create_oval(110, 10, 120, 20, fill='black', outline='black')

    v1.deiconify()

v0 = Tk()
menu1 = Menu(v0)
v0.title("Poligonos Alberto Vega")
v0.config(menu=menu1,bg="Dimgrey")
v0.geometry("500x500")

menu1_1 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="Alberto Vega", menu=menu1_1)

menu1_1_1 = Menu(menu1_1, tearoff=0)
menu1_1.add_cascade(label="Mis Poligonos", menu=menu1_1_1)
menu1_1_1.add_command(label="Mario Bros", command=lambda: Mario())

menu1_2 = Menu(menu1, tearoff=0)
menu1.add_cascade(label="Compañeros", menu=menu1_2)

menu1_2_1 = Menu(menu1_2, tearoff=0)
menu1_2.add_cascade(label="Pedro Maldonado", menu=menu1_2_1)
menu1_2_1.add_command(label="Diamante", command=lambda: Diamante())

menu1_2_1 = Menu(menu1_2, tearoff=0)
menu1_2.add_cascade(label="Humberto Perez", menu=menu1_2_1)
menu1_2_1.add_command(label="Tren", command=lambda: Tren())

v0.mainloop()