Programas Python En Clase



                           Programa Mostrar Hola Mundo con For

for i in "Hola mundo":
print(i)
Programa Mostrar Números del 1 al 100
i=1while(i<=100):
    print(i)
    i +=1    print("fin de bucle")


Programa Mostrar Rango de Números
##!/usr/bin/python3
rango = list(range(5,11))

print(rango)
Programa decimal a binario
print("programa de conversion de decimal a binario")
print("ingrese el valor a convertir===>")

a=int(input(""))
b=bin(a)
print(b)
                      Programa de suma básica

import time
print("Ingrese un numero:")
a=int(input(""))
print("Ingrese un segundo numero:")
b=int(input(""))

suma=a+b
print("Suma de valores ingresados")print(suma)
Programa rango Hola
#!/usr/bin/python3
rango = list(range(0, input("Hola mundo")))

print(rango)
Programa rango con if
valor= int(input("Dame el valor "))
#valor=5
if valor>0 and valor <11:

    print("Esta en el rango de 0-10")

elif valor>11and valor<21:
    print("El numero esta en el rengo de  11 a 20 ")

elif valor >20 and valor<31:
    print ("El valor esta en el rango de 21 a 30 ")

else:
    print("el numero no esta en ningun rango ")
Suma Rangos
#!/usr/bin/python3
rango1 = list(range(0, 11))
print(rango1)
rango2 = list(range(15, 21))
print(rango2)

final = rango1 + rango2

print(final)

Programa Positivo o Negativo


def Numero(num):
 try :

    if num > 0:
        return "Positivo"    elif num < 0:
        return "Negativo"

 except TypeError:
  print ("Debes escribir un numero" )
   # return -1
num=int(input("Ingresa un numero + o - "))
print (num)
print(Numero(num))
Programa Adivinar Numero
print("Dame un numero del 1--5=====> ")
num=int(input(""))

if num==5:
    print("Es el numero 5")
elif num==4:
    print("Es el numero 4")
elif num==3:
    print("Es el numero 3")
elif num==2:
    print("Es el numero 2")
elif num==1:
    print("Es el numero 1")
else:
    print("Error elige un numero entre 1--5")
Programa Adivinar Numero con rango :
#!/usr/bin/python3
from random import *


def generaNumeroAleatorio(minimo, maximo):
    try:
        if minimo > maximo:
            aux = minimo
            minimo = maximo
            maximo = aux

        return randint(minimo, maximo)
    except TypeError:
        print("Debes escribir numeros")
        return -1

numero_buscado = generaNumeroAleatorio(1, 100)
numero_inicial=int(input("dame el numero inicial del rango"))
numero_final=int(input("dame el numero final del rango"))
numero_buscado= generaNumeroAleatorio(numero_inicial,numero_final)


encontrado = Falseintentos = 0
while not encontrado:

    numero_usuario = int(input("Introduce el número buscado: "))

    if numero_usuario > numero_buscado:
        print("El número que buscas es menor")
        intentos = intentos + 1    elif numero_usuario < numero_buscado:
        print("El numero que buscas es mayor")
        intentos = intentos + 1    else:
        encontrado = True        print("Has acertado el número correcto es ", numero_usuario, " te ha llevado ", intentos, " intentos")

Precios Mayores o Menores
a=int(input("Dame el precio del producto"))
b=int(input("Dame el precio del producto"))


#a=10#b=30
if  a>b:
    print("A es mayor que B")

elif b<a:
    print("B es mayor que A")

elif a==b:
        print("son iguales ")


Array Nombre :
datos=[]

for i in range(1,7):
    nuevoDato=input("Dame el nmbre para el array: ".format(i))
    datos.append(nuevoDato)

datos.reverse()
print(datos)


Array alreves
datos=[]

for i in range (1,7):
    nuevoDato=input("Dame el nombre numero {} para el array:".format(i))
    datos.append(nuevoDato)

print("imprimir al reves ")
for i in range(6,0,-1):
  print (datos[i-1])

Arreglo de datos
datos=[]

for i in range (1,7):
    nuevoDato=input("Dame el numero {} para el array:".format(i))
    datos.append(nuevoDato)

    #imprimiendo arreglo#for i in range (1,7):datos.sort(reverse=True)
print (datos)

Programa Notas
def notas(nota):
    if nota>=0 and nota<=3:
        return "insuficiente "
    elif  nota>=4 and nota<=6:
        return "suficiente"
    elif  nota>=7 and nota<=10:
        return "bien"

nota=input("ingrese la calificacion:")
print notas(nota)



Programa Porciento
precio_producto=int(input("Dame el precio del producto"))
iva=int(input ("DAME EL IVA DEL PRODUCTO"))

iva=iva/100
print("el total del precio es:", precio_producto*iva)
precio_fin=((precio_producto*iva)+precio_producto)

print("el total es:",precio_fin)

                                Programa Iva Producto
precio_producto=int(input("Dame el precio del producto"))
iva=int(input ("DAME EL IVA DEL PRODUCTO"))

iva=iva/100
print("el total del precio es:", precio_producto*iva)
precio_fin=((precio_producto*iva)+precio_producto)

print("el total es:",precio_fin)



                             Programa Prestamo 
def cuotas(prestamo1,meses):
    cuota_m=prestamo1/meses
    return cuota_m


def prestamo():
    prestamo1=input("monto del prestamo ")
    meses=input("Cuantos meses vas a pagar")
    print("monto a pagar :",cuotas(prestamo1,meses))

edad=input("Dame la edad ")

if edad >=18:
     ingresos=int(input("Dame tus ingresos"))
     egresos=int (input("Dame tus egresos "))
     if ingresos>=egresos:
         prestamo()
     else :
         print("Sus ingresos no es mayor que lo egresos")
else:
 print("Eres menor de edad /no prestamo ")

                        Programa Dulces 

def iniciar():
    dulce=input("eliga la opcion a,b,c,d")
    if dulce=="a":

         precio_producto=2.5         print(" su cambio ",calcularVuelto(monto,precio_producto)

    elif dulce=="b":
         precio_producto = 1.4         print(" su cambio ", calcularVuelto(monto, precio_producto)

def calcularVuelto(monto,precio_prodcto):
    return monto-precio_prodcto

def imprimirProductos():
    print( "a) chicle fresa  precio 2.5\n b) gomitas precio 1.4\n c) caramelo precio 4.0 ")

print (imprimirProductos())
monto=int(input("Dame el monto: "))
  if monto<5:
    iniciar()

  else:
    print('monto debe ser menor que 5 ')

Programa Edad



JUEGOS :
JUEGO 1
import random

print("EN ESTE JUEGO SE SELECCIONA UNA CHOZA PARA DESCANZAR \n",      "puede existir un amigo, enemigo, desocupado")
print("Cuidado! hay enemigos rodeando la zona ")

ocupantes=["enemigo","amigo","no ocupada"]

seguir_jugando="1"
while seguir_jugando=="1":

    choza=[]
    while len(choza)<5:
        eleccion_aleatoria=random.choice(ocupantes)
        choza.append(eleccion_aleatoria)

        print(choza)

    desicion_usuario = int(input("Elige una choza 1 al 5"))
    idx=int(desicion_usuario)
    if choza[idx-1]=="enemigo":

            print("perdiste")
            seguir=int(input("deseas seguir jugabdo 1(si) o 2(no)"))
           if seguir==   1:
               seguir_jugando="1"           else:
                seguir_jugando="2"    else:
            print("ganaste")
            seguir_jugando="1"

                           Juego 2


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

def print_bold(msg):
    #Funcion para mostrar por pantalla un string en negrita    print("\033[1m"+msg+"\033[0m")

def print_linea_punteada(width=72):
    print('-'*width)

def ocupar_chozas():
    ocupantes = ['enemigo','amigo','no ocupada']
    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)
    return chozas

def mostrar_mision():
    print("\033[1m"+ "Ataca a los Orcos V0.0.5" + "\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 = 72))
    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()

def mostrar_salud(medidor_salud, bold):
    if bold:
        print_bold("Salud Sir Gandorel:")
        print_bold("%d"%(medidor_salud['jugador']))
        print_bold("Salud Enemigo:")
        print_bold("%d"%(medidor_salud['enemigo']))
    else:
        print("Salud Sir Gandorel:")
        print("%d"%(medidor_salud['jugador']))
        print("Salud Enemigo:")
        print("%d"%(medidor_salud['enemigo']))


def procesar_decision_usuario():
    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)
    return idx

def reset_medidor_salud(medidor_salud):
    medidor_salud['jugador']=40    medidor_salud['enemigo']=30
def atacar(medidor_salud):
    lista_golpes = 4*['jugador']+6*['enemigo']
    unidad_herida = random.choice(lista_golpes)
    puntos_vida = medidor_salud[unidad_herida]
    herida = random.randint(10,15)
    medidor_salud[unidad_herida] = max(puntos_vida- herida,0)
    print("¡Ataque!")
    mostrar_salud(medidor_salud,bold=False)

def revelar_ocupantes(idx, chozas):
    msg=""    print("Revelando los ocupantes...")
    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()

#En la siguiente función se establece un sistema de combate iterativodef play_game(medidor_salud):
    chozas = ocupar_chozas()
    idx = procesar_decision_usuario()
    revelar_ocupantes(idx, chozas)

    if chozas[idx-1] != 'enemigo':
        print_bold("¡Enhorabuena! ¡Has GANADO!")
    else:
        print_bold('¡Enemigo encontrado!')
        mostrar_salud(medidor_salud, bold=True)
        continuar_ataque = True
        while continuar_ataque:
            continuar_ataque = input("...continuar con el ataque? Si(1)/No(0)")
            if continuar_ataque == 0:
                print_bold("Huyendo con el siguiente estado de salud...")
                mostrar_salud(medidor_salud, bold=True)
                print_bold("¡Game Over!")
                break
            atacar(medidor_salud)

            if medidor_salud['enemigo'] <=0:
                print_bold("¡Sir Gandorel ha derrotado a su enemigo!")
                break            if medidor_salud['jugador'] <=0:
                print_bold("Sir Gandorel ha muerto ...")
                break
#Funcion para hacer funcionar el programa principal que queremos ejecutardef run_application():
    seguir_jugando = 1    medidor_salud = {}
    reset_medidor_salud(medidor_salud)
    mostrar_mision()


    while seguir_jugando == 1:
        reset_medidor_salud(medidor_salud)
        play_game(medidor_salud)
        seguir_jugando = input("¿Quieres jugar de nuevo? Si(1)/No(0):")

if __name__ == '__main__':
    run_application()




                         Juego v3 
# -*- 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 = int(input("¿Quieres jugar de nuevo? Si(1)/No(0):"))


                     
                                   Juego con Funciones  

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

def mostrar_mision():

    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...")
    ancho_linea=72    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")


def ocupar_chozas():
    ocupantes=['enemigo','amigo','no ocupada']
    chozas=[]
    #llenamos el arreglo chozas  con random de arreglo ocupantes    while len(chozas) < 5:
        eleccion_aleatoria=random.choice(ocupantes)
        chozas.append(eleccion_aleatoria)
    return chozas

def procesar_desicion_usuario():
    msg= "\033[1m" +"elige una choza, introduce un numero entre 1 y 5: "+"\033[0m"    desicion_usuario=input("\n"+msg)
    idx=int(desicion_usuario)
    return idx

def print_linea_punteada(ancho=72):
    print("_"*ancho)



def revelar_ocupantes(idx,chozas):
    msg= ""    print("revelando los ocupantes")
    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()

def play_game():
    chozas=ocupar_chozas()
    idx=procesar_desicion_usuario()
    revelar_ocupantes(idx,chozas)
    if chozas[idx-1]!="enemigo":
        print("En horabuena, has ganado")
    else:
        print("enemigo, has perdido")
        return

def run_application():
    seguir_jugando=1    mostrar_mision()
    while seguir_jugando==1:
        play_game()
        seguir_jugando=int(input("¿Quieres jugar de nuevo? si(1) o no(2) : "))

run_application()



                Piedra papel o tijera 

import random
from time import sleep

print "Bienvenido al juego de  piedra, papel o tijera."print ""sleep(2)
print "Por defecto ganara el mejor de tres, pero lo puedes cambiar."sleep(1)
print ""

# Funcion de la lógica del juegodef juego(intentos):
    x = 0    jugador = 0    pc = 0    while str(x) != intentos:
        print "Piedra, papel o tijera?"        opc = raw_input()
        opc = opc.lower()         #FUNCION PARA CONVERTIR A MINUSCULA        azar = random.choice(["piedra", "papel", "tijera"])
        if opc == azar:
            print "La computadora  tambien elijio", azar
            print ""        elif azar == "tijera" and opc == "papel":
            x += 1            pc += 1            print "El PC saco", azar
            print "Tu", jugador, "PC", pc
            print ""        elif azar == "tijera" and opc == "piedra":
            x += 1            jugador += 1            print "La computadora saco", azar
            print "Tu", jugador, "PC", pc
            print ""        elif azar == "piedra" and opc == "tijera":
            x += 1            pc += 1            print "La computadora saco", azar
            print "Tu", jugador, "Computadora", pc
            print ""        elif azar == "piedra" and opc == "papel":
            x += 1            jugador += 1            print "El PC saco", azar
            print "Tu", jugador, "PC", pc
            print ""        elif azar == "papel" and opc == "tijera":
            x += 1            jugador += 1            print "La computadora saco", azar
            print "Tu", jugador, "Computadora", pc
            print ""        elif azar == "papel" and opc == "piedra":
            x += 1            pc += 1            print "La computadora saco", azar
            print "Tu", jugador, "Computadora", pc
            print ""        else:
            print "Opcion incorrecta, intentalo otra vez"
    print ""
    if pc > jugador:
        print "Gano la computadora", pc, "a", jugador
    elif pc == jugador:
        print "Empataron", jugador, "a", pc
    else:
        print "Ganaste", jugador, "a", pc

    print ""    print "El juego termino"

def main():
    print "Escribe 1 para jugar al mejor de tres."    print "Escribe 2 para cambiar la modalidad del juego."
    opcion = input()

    if opcion == 1:
        juego("3")
        print ""        restart = raw_input("Quieres jugar de nuevo?(s/n): ")
        restart = restart.lower()
        if restart == "s":
            print ""            main()
    else:
        intentos = raw_input("Introduce el numero de partidas: ")
        juego(intentos)
        print ""        restart = raw_input("Quieres jugar de nuevo?(s/n): ")
        restart = restart.lower()
        if restart == "s":
            print ""            main()
        else:
            print "Fin"

main()





    JUEGO DE PALABRAS CON ARREGLO :
# -*- coding: utf-8 -*-
import random
import textwrap

def print_bold(msg):
    #Funcion para mostrar por pantalla un string en negrita    print("\033[1m"+msg+"\033[0m")

def print_linea_punteada(width=72):
    print('-'*width)

def ocupar_chozas():
    vector = ['perro','pizza','casa','perro','gato']


    Palabras = []
    while len(Palabras) < 5:
        eleccion_aleatoria = random.choice(vector)
        Palabras.append(eleccion_aleatoria)
    return Palabras

def mostrar_mision():
    print("\033[1m"+ "Bienvenido a juego de palabras" + "\033[0m")

    msg = ("Elije una palabra sin equivocarte."      "Empezamos a Jugar..")

    print(textwrap.fill(msg, width = 72))
    print("\033[1m"+"Misión:"+"\033[0m")
    print("..")
    print("\033[1m"+"NOTA:"+"\033[0m")
    print("¡Cuidado! Elije la palabra correcta sin equivocarse")
    print_linea_punteada()

def mostrar_salud(medidor_salud, bold):
    if bold:
        print_bold("Salud: Ganador ")
        print_bold("%d"%(medidor_salud['jugador']))
        print_bold("Salud Contrincante:")
        print_bold("%d"%(medidor_salud['enemigo']))
    else:
        print("Salud Ganador:")
        print("%d"%(medidor_salud['jugador']))
        print("Salud Enemigo:")
        print("%d"%(medidor_salud['enemigo']))


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

def reset_medidor_salud(medidor_salud):
    medidor_salud['jugador']=40    medidor_salud['enemigo']=30
def atacar(medidor_salud):
    lista_golpes = 4*['jugador']+6*['enemigo']
    unidad_herida = random.choice(lista_golpes)
    puntos_vida = medidor_salud[unidad_herida]
    herida = random.randint(10,15)
    medidor_salud[unidad_herida] = max(puntos_vida- herida,0)
    print("¡Lanzando Palabra al azar!")
    mostrar_salud(medidor_salud,bold=False)

def revelar_ocupantes(idx, Palabras):
    msg=""    print("Revelando las palabras...")
    for i in range(len(Palabras)):
        ocupantes_info = "<%d:%s>"%(i+1, Palabras[i])
        if i+1 == idx:
            ocupantes_info = "\033[1m" + ocupantes_info + "\033[0m"        msg += ocupantes_info + " "    print("\t" + msg)
    print_linea_punteada()

#En la siguiente función se establece un sistema de combate iterativodef play_game(medidor_salud):
    chozas = ocupar_chozas()
    idx = procesar_decision_usuario()
    revelar_ocupantes(idx, chozas)

    if chozas[idx-1] != 'perro':
        print_bold("¡Enhorabuena! ¡Has GANADO!")
    else:
        print_bold('Palabras encontradas!')
        mostrar_salud(medidor_salud, bold=True)
        continuar_ataque = True
        while continuar_ataque:
            continuar_ataque = input("...continuar adivinando palabras Si(1)/No(0)")
            if continuar_ataque == 0:
                print_bold("Te queda la siguiente vida...")
                mostrar_salud(medidor_salud, bold=True)
                print_bold("¡Haz perdido la partida !")
                break
            atacar(medidor_salud)

            if medidor_salud['perro'] <=0:
                print_bold("¡Ganaste Adivinste la palabra!")
                break            if medidor_salud['pizza'] <=0:
                print_bold("Perdiste no la adivinaste...")
                break
#Funcion para hacer funcionar el programa principal que queremos ejecutardef run_application():
    seguir_jugando = 1    medidor_salud = {}
    reset_medidor_salud(medidor_salud)
    mostrar_mision()



    while seguir_jugando == 1:
        reset_medidor_salud(medidor_salud)
        play_game(medidor_salud)
        seguir_jugando = input("¿Quieres jugar de nuevo? Si(1)/No(0):")

if __name__ == '__main__':
    run_application()




    Por arreglo:


Crear ventanas :
# -*- coding: utf-8 -*-
from tkinter import *


def _from_rgb(rgb):

  return "#%02x%02x%02x" % rgb


v0= Tk()#ventana principalv0.title("Ventana Principal")
v0.configure(bg=_from_rgb((0, 150, 200)))
v0.geometry("500x500")#tamaño ventana

def mostrar(num):
    v1=Toplevel(v0)
    v1.title("ventana hija")
    v1.config(bg="green")
    v1.protocol("WN_DELETE_WINDOW", "onexit")
    v1.geometry("400x400")

v0.mainloop()

Programa :
Hacer Polígonos Figuras
# -*- coding: utf-8 -*-

from tkinter import *


def _from_rgb(rgb):

  return "#%02x%02x%02x" % rgb


v0= Tk()#ventana principalv0.title("Ventana Principal")
v0.configure(bg=_from_rgb((0, 150, 200)))
v0.geometry("500x500")#tamaño ventana

def mostrar(num):
    v1=Toplevel(v0)
    v1.title("ventana hija")
    v1.config(bg="green")
    v1.protocol("WN_DELETE_WINDOW", "onexit")
    v1.geometry("400x400")


    if num==1:
        canvas1=Canvas(v1, width=200, height=210, bg="white")
        canvas1.create_line(0,200,200,0,width=10,fil="red")
        canvas1.pack(expand=YES,fill=BOTH)
        b2=Button(canvas1,text="Ocultar",command=lambda:ejecutar(ocultar(v1)))
        b2.place(x=35,y=50)
        v1.deiconify()
    elif num == 2:
        canvas2 = Canvas(v1, width=240, height=210, bg="white")
        canvas2.create_oval(10, 10, 200, 200, width=10, fil="blue")
        canvas2.pack(expand=YES, fill=BOTH)
        b2 = Button(canvas2, text="Ocultar", command=lambda: ejecutar(ocultar(v1)))
        b2.place(x=35, y=250)
        v1.deiconify()
    elif num == 3:
        canvas3 = Canvas(v1, width=240, height=210, bg="white")
        canvas3.create_rectangle(10, 10, 200, 200, width=10, fil="yellow")
        canvas3.pack(expand=YES, fill=BOTH)
        b2 = Button(canvas3, text="Ocultar", command=lambda: ejecutar(ocultar(v1)))
        b2.place(x=35, y=250)
        v1.deiconify()




def ocultar(ventana):
    ventana.destroy()
def ejecutar (f):
    v0.after(200,f)




b1=Button(v0,text="Hacer Linea ",command=lambda:ejecutar(mostrar(1)))
b1.place(x=35,y=50)


b2=Button(v0,text="Hacer Circulo",command=lambda:ejecutar(mostrar(2)))
b2.place(x=35,y=100)

b3=Button(v0,text="Hacer Rectangulo",command=lambda:ejecutar(mostrar(3)))
b3.place(x=35,y=150)





v0.mainloop()








Programa chino 

from tkinter import *


ventana = Tk()
c = Canvas(ventana,width=500,height=500)
ventana.geometry("500x500")
c.place(x=0,y=0)
c.create_rectangle(0,0,500,500,fill="blue")
c.create_oval(180,180,320,320,fill="#FFEBCD")
c.create_line(210,240,240,240,width=4.0)
c.create_line(260,240,290,240,width=4.0)
c.create_polygon(160,210,340,210,250,150,fill="yellow")
ventana.mainloop()

Programa Bambi



# -*- coding: utf-8 -*-from Tkinter import *
import tkColorChooser #libreria para obtener la gama de colores
#crecion de la ventana principalv0 = Tk()
v0.title('Ventana principal')
v0.config(bg = 'brown') #bg para el color de fondo de la ventanav0.geometry('500x500')#tamaño de la ventana#v0.iconbitmap("descarga.ico")#para cambiar el icono de la ventana
def mostrar(num):
    #aparece la gamade colores RGB o en numero hexadecimal    a=tkColorChooser.askcolor(title="Color de contorno")
    b=tkColorChooser.askcolor(title="Color de cornia y partes iluminadas")
    c = tkColorChooser.askcolor(title="Color de piel iluminada")
    d = tkColorChooser.askcolor(title="Color de sombra clara")
    e = tkColorChooser.askcolor(title="Color de sombra oscurra")
    f = tkColorChooser.askcolor(title="Color de sombra media")
    g = tkColorChooser.askcolor(title="Color de pupila")
    h = tkColorChooser.askcolor(title="Color de iris")
    #ventana secundaria    v1 = Toplevel(v0)
    v1.title('ventana hija')

    v1.protocol('Wn_DELETE_WINDOW',"onexit")#para cerrar la ventana por medio de la cruz    v1.geometry('450x560')#tamaño de la ventana    #v1.iconbitmap("vhija.ico")  # para cambiar el icono de la ventana    #condiciones para los botones    if num == 1:
        canvas1=Canvas(v1,width=200,height=200, bg='white')#(b[1])) esto es para seleccionar el color de fondo# OBJETO DE LA TKINTER   CANVAS(FIGURAS)     200 pixeles de ancho 200 ancho        canvas1.pack(expand = YES, fill = BOTH)  #DESPLEGAR EL CANVAS, EXPAND QUE SEA EXPANDIBLE       # puntos = [0, 0, 0, 10, 10, 10, 10, 20]        #canvas1.create_polygon(puntos, width=10, fill=(a[1]))
        #Cabeza        canvas1.create_polygon(50, 170,    50,  120,   60,  120,   60,  100,                               70, 100,    70,  90,    90,  90,    90,  80,                               160, 80,    160, 60,    170, 60,    170, 50,                               190, 50,    190, 40,    230, 40,    230, 50,                               240, 50,    240, 80,    230, 80,    230, 90,                               270, 90,    270, 100,   290, 100,   290, 110,                               300, 110,   300, 120,   310, 120,   310, 160,                               300, 160,   300, 170,   290, 170,   290, 180,                               280, 180,   280, 190,   200, 190,   50,  170, width=10,   fill=(a[1]))  # fill='black')#negro
                               # beige        canvas1.create_polygon(70,  150,   140, 120,   180, 120,   270, 130,                               270, 180,   210, 180,   210, 200,   200, 220,                               170, 250,   80,  250,   60,  240,   40,  220,                               40,  200,   50,  180,   60,  170,   70, 150, width=10,   fill=(c[1]))  # fill="#%02x%02x%02x" % (240, 230, 140))
        canvas1.create_polygon(30,  200,   30,  220,   40,  220,   40,  230,                               50,  230,   50,  240,   60,  240,   60,  250,                               80,  250,   80,  260,   110, 260,   110, 300,                               120, 300,   120, 330,   130, 330,   130, 350,                               140, 350,   140, 360,   150, 360,   150, 370,                               160, 370,   160, 380,   170, 380,   170, 370,                               160, 370,   160, 360,   150, 360,   150, 350,                               140, 350,   140, 330,   130, 330,   130, 300,                               120, 300,   120, 260,   170, 260,   170, 250,                               180, 250,   180, 240,   190, 240,   190, 230,                               200, 230,   200, 220,   210, 220,   210, 200,                               220, 200,   220, 190,   250, 190,   250, 180,                               280, 150,   280, 140,   270, 140,   270, 130,                               260, 130,   260, 120,   210, 120,   210, 130,                               200, 130,   200, 140,   210, 140,   210, 130,                               260, 130,   260, 140,   270, 140,   270, 150,                               280, 150,   250, 180,   210, 180,   210, 200,                               200, 200,   200, 220,   190, 220,   190, 230,                               180, 230,   180, 240,   170, 240,   170, 250,                               80,  250,   80,  240,   60,  240,   60,  230,                               50,  230,   50,  220,   40,  220,   40,  200,                               30,  200,   width=10,   fill=(f[1]))  # fill="#%02x%02x%02x" % (210, 106, 30) ) #barro
        canvas1.create_polygon(220, 50,    190, 50,    190, 60,    170, 60,                               170, 80,    160, 80,    160, 90,    140, 100,                               110, 100,   110, 90,    90,  90,    90,  110,                               110, 110,   110, 100,   130, 100,   130, 110,                               140, 110,   140, 120,   90,  120,   90,  130,                               80,  130,   80,  140,   70,  140,   70,  150,                               130, 150,   130, 140,   140, 140,   140, 120,                               210, 110,   230, 110,   230, 100,   210, 100,                               210, 110,   140, 120,   140, 100,   160, 90,                               170, 90,    170, 70,    190, 70,    190, 60,                               220, 60,    220, 60,    width=10, fill=(b[1]))#fill='white')#blanco
                               # cafemarrom        canvas1.create_polygon(70, 100,    70, 120,    60,  120,    60,  170,                               50, 170,    50, 180,    60,  180,    60,  170,                               70, 170,    70, 140,    80,  140,    80,  130,                               90, 130,    90, 120,    100, 120,    100, 110,                               90, 110,    90, 100,    70,  100,    width=10, fill=(d[1]))  # fill="#%02x%02x%02x" % (250, 133, 63))
        canvas1.create_rectangle(180, 120, 210, 130,   width=1, fill=(d[1]), outline=(d[1]))# fill="#%02x%02x%02x" % (250, 133, 63),outline="#%02x%02x%02x" % (250, 133, 63))
        canvas1.create_polygon(290, 120,   300, 120,   300, 160,    290, 160,                               290, 170,   280, 170,   280, 180,    250, 180,                               250, 170,   260, 170,   260, 160,    270, 160,                               270, 150,   280, 150,   280, 140,    290, 140,                               290, 120,   width=10,   fill=(d[1]))  # fill="#%02x%02x%02x" % (250, 133, 63))
                              #cafe
        canvas1.create_polygon(200, 100,   190, 100,   180, 100,    180, 90,                               170, 90,    170, 70,    190, 70,     190, 60,                               220, 60,    220, 50,    230, 50,     230, 80,                               220, 80,    220, 90,    200, 90,     200, 100,                               200, 110,   180, 110,   180, 100,    160, 100,                               160, 90,    110, 90,    110, 110,    100, 110,                               100, 120,   130, 120,   130, 100,    140, 100,                               140, 110,   130, 110,   130, 120,    260, 120,                               260, 130,   270, 130,   270, 140,    290, 140,                               290, 110,   270, 110,   270, 100,    230, 100,                               230, 110,   210, 110,   210, 100,    200, 100, width=10,   fill=(e[1]))  # fill="#%02x%02x%02x" % (139, 69, 19))
        #NARIZ        canvas1.create_rectangle(20, 170,  50, 200,    width=1, fill=(a[1]), outline=(a[1]))#fill="black", outline="black")#negro
        canvas1.create_rectangle(30, 180,  40, 190,    width=1, fill=(e[1]), outline=(e[1]))#fill="#%02x%02x%02x" % (139, 69, 19),outline="#%02x%02x%02x" % (139, 69, 19))#cafe
        #OJO        canvas1.create_polygon(140, 160,   140, 170,   110, 170,    110, 180,                               100, 180,   100, 190,   90,  190,    90,  220,                               100, 220,   100, 230,   130, 230,    130, 220,                               160, 220,   160, 210,   170, 210,    170, 170,                               180, 170,   180, 160,   140, 160,    width=10, fill=(a[1]))  # fill='black')#negro
        canvas1.create_polygon(100, 200,   100, 190,   110, 190,    130, 180,                               160, 180,   160, 210,   150, 210,    150, 220,                               140, 220,   100, 200,   width=10, fill=(b[1]))  # fill='white')#blanco
        canvas1.create_rectangle(100, 210, 130, 220,   width=1, fill=(g[1]), outline=(g[1]))  # fill="sky blue", outline="sky blue")#celeste
        canvas1.create_polygon(100, 210,   100, 200,   110, 200,    110, 180,                               130, 180,   130, 190,   140, 190,    140, 220,                               130, 220,   130, 210,   width=10, fill=(h[1]))  # fill='blue')#azul        # cuerpo                 #MARRON        canvas1.create_polygon(160, 450,   150, 450,   150, 480,    140, 480,                               140, 500,   120, 500,   120, 450,    130, 450,                               130, 450,   140, 450,   140, 360,    150, 360,                               150, 370,   160, 370,   160, 450,    160, 480,                               150, 480,   150, 500,   180, 500,    180, 470,                               190, 470,   190, 430,   200, 430,    200, 380,                               210, 380,   210, 350,   220, 350,    260, 320,                               270, 340,   270, 370,   280, 380,    280, 430,                               270, 470,   270, 500,   310, 500,    330, 420,                               330, 420,   340, 400,   360, 400,    360, 480,                               350, 480,   350, 500,   400, 500,    400, 430,                               420, 430,   420, 370,   390, 370,    390, 360,                               360, 210,   340, 190,   340, 260,    250, 300,                               140, 260,   130, 260,   130, 290,    145, 340,                               170, 370,   170, 450,   160, 450,    width=10, fill=(d[1]))
                 #NEGRO        canvas1.create_polygon(130, 350,   130, 450,   120, 450,    120, 480,                               110, 480,   110, 500,   120, 500,    120, 510,                               180, 510,   180, 500,   190, 500,    190, 470,                               200, 470,   200, 430,   210, 430,    210, 380,                               200, 380,   200, 430,   190, 430,    190, 470,                               180, 470,   180, 500,   150, 500,    150, 480,                               160, 480,   160, 450,   170, 450,    170, 380,                               160, 380,   160, 450,   150, 450,    150, 480,                               140, 480,   140, 500,   120, 500,    120, 480,                               130, 480,   130, 450,   140, 450,    140, 350,                               130, 350,   width=10, fill=(a[1]))


        canvas1.create_polygon(260, 340,   260, 370,   270, 370,    270, 380,                               280, 380,   280, 430,   270, 430,    270, 470,                               260, 470,   260, 500,   270, 500,    270, 510,                               310, 510,   310, 500,   320, 500,    320, 460,                               330, 460,   330, 420,   340, 420,    340, 400,                               360, 400,   360, 450,   350, 450,    350, 480,                               340, 480,   340, 500,   350, 500,    350, 510,                               390, 510,   390, 500,   400, 500,    400, 470,                               410, 470,   410, 430,   420, 430,    420, 410,                               430, 410,   430, 380,   420, 380,    420, 370,                               410, 370,   410, 360,   390, 360,    390, 370,                               410, 370,   410, 380,   420, 380,    420, 410,                               410, 410,   410, 430,   400, 430,    400, 470,                               390, 470,   390, 500,   350, 500,    350, 480,                               360, 480,   360, 450,   370, 450,    370, 390,                               340, 390,   340, 380,   320, 380,    320, 370,                               310, 370,   310, 360,   300, 360,    300, 350,                               290, 350,   290, 340,   280, 340,    280, 350,                               290, 350,   290, 360,   300, 360,    300, 370,                               310, 370,   310, 380,   320, 380,    320, 390,                               340, 390,   340, 400,   330, 400,    330, 420,                               320, 420,   320, 460,   310, 460,    310, 500,                               270, 500,   270, 470,   280, 470,    280, 430,                               290, 430,   290, 380,   280, 380,    280, 370,                               270, 370,   270, 340,   260, 340,    width=10, fill=(a[1]))

        canvas1.create_polygon(160, 250,   160, 260,   170, 260,    170, 270,                               180, 270,   180, 280,   200, 280,    200, 270,                               220, 270,   220, 260,   240, 260,    240, 250,                               260, 250,   260, 240,   320, 240,    320, 250,                               340, 250,   340, 200,   350, 200,    350, 210,                               360, 210,   360, 220,   370, 220,    370, 210,                               360, 210,   360, 200,   350, 200,    350, 190,                               340, 190,   340, 180,   330, 180,    330, 240,                               320, 240,   320, 230,   260, 230,    260, 240,                               240, 240,   240, 250,   220, 250,    220, 260,                               200, 260,   200, 270,   180, 270,    180, 260,                               170, 260,   170, 250,   160, 250,    width=10, fill=(a[1]))

                    #cafe        canvas1.create_polygon(140, 260,   140, 270,   150, 270,    150, 280,                               160, 280,   160, 290,   200, 290,    200, 300,                               320, 300,   320, 290,   330, 290,    330, 280,                               340, 280,   340, 250,   320, 250,    320, 240,                               260, 240,   260, 250,   240, 250,    240, 260,                               220, 260,   220, 270,   200, 270,    200, 280,                               180, 280,   180, 270,   170, 270,    170, 260,                               140, 260,   width=10, fill=(e[1]))

                #beige        canvas1.create_rectangle(220, 270, 240, 290, width=1, fill=(c[1]), outline=(c[1]))

        canvas1.create_rectangle(260, 250, 280, 270, width=1, fill=(c[1]), outline=(c[1]))

        canvas1.create_rectangle(280, 270, 300, 290, width=1, fill=(c[1]), outline=(c[1]))

        canvas1.create_rectangle(290, 240, 310, 250, width=1, fill=(c[1]), outline=(c[1]))

        canvas1.create_polygon(370, 220,   370, 230,   380, 230,    380, 260,                               370, 260,   370, 270,   380, 270,    380, 290,                               390, 290,   390, 330,   380, 330,    380, 350,                               370, 350,   370, 340,   360, 340,    360, 220,                               370, 220,   width=10, fill=(c[1]))

        canvas1.create_polygon(210, 360, 220, 360, 220, 350, 230, 350,                               230, 340, 250, 340, 250, 330, 290, 330,                               290, 340, 300, 340, 300, 320, 290, 320,                               290, 310, 260, 310, 260, 320, 240, 320,                               240, 330, 230, 330, 230, 340, 220, 340,                               220, 350, 210, 350, 210, 360, width=10, fill=(c[1]))

        canvas1.create_polygon(120, 260, 120, 300, 130, 300, 130, 330,                               140, 330, 140, 350, 150, 350, 150, 360,                               160, 360, 160, 370, 170, 370, 170, 350,                               160, 350, 160, 340, 150, 340, 150, 320,                               140, 320, 140, 290, 130, 290, 130, 260,                               120, 260, width=10, fill=(c[1]))

          #blanco        canvas1.create_polygon(150, 290, 150, 300, 160, 300, 160, 320,                               170, 320, 170, 330, 180, 330, 180, 380,                               170, 380, 170, 420, 180, 420, 180, 380,                               190, 380, 190, 350, 200, 350, 200, 340,                               210, 340, 210, 330, 200, 330, 200, 320,                               190, 320, 190, 310, 170, 310, 170, 300,                               160, 300, 160, 290, 150, 290, width=10, fill=(b[1]))

        canvas1.create_polygon(320, 340, 330, 340, 330, 360, 340, 360,                               340, 330, 330, 330, 330, 320, 320, 320,                               320, 340,  width=10, fill=(b[1]))

        canvas1.create_polygon(350, 480, 350, 490, 360, 490, 360, 480,                               370, 480, 370, 450, 380, 450, 380, 430,                               370, 430, 370, 450, 360, 450, 360, 480,                               350, 480,  width=10, fill=(b[1]))
                 #barro        canvas1.create_polygon(210, 380, 220, 380, 220, 360, 230, 360,                               230, 350, 250, 350, 250, 340, 290, 340,                               290, 330, 250, 330, 250, 340, 230, 340,                               230, 350, 220, 350, 220, 360, 210, 360,                               210, 380, width=10, fill=(f[1]))

        canvas1.create_polygon(380, 360, 390, 360, 390, 330, 400, 330,                               400, 290, 390, 290, 390, 270, 380, 270,                               380, 260, 390, 260, 390, 230, 380, 230,                               380, 220, 370, 220, 370, 230, 380, 230,                               380, 260, 370, 260, 370, 270, 380, 270,                               380, 290, 390, 290, 390, 330, 380, 330,                               380, 360, width=10, fill=(f[1]))





def ocultar(ventana):ventana.destray()
def ejecutar(f):v0.after(200,f)



#botones# V0 donde se va desplegar el botonb1 = Button(v0, text='BAMBI', command=lambda: ejecutar(mostrar(1)))
b1.grid(row=1, column=1)  # desplegar boton


v0.mainloop()

Programa Poligonos Varios

                            Programa Juego del gato :

   JUEG



#-*- coding: utf-8 -*-from Tkinter import *
import tkMessageBox     # Libreria para crear ventanas de diálogoimport tkSimpleDialog   # Libreria para crear ventanas de diálogo

# Variables globales.ventanaPrincipal = Tk()
nombreJugador1 = ""                 # Variable que contendrá el nombre de un jugador.nombreJugador2 = ""                 # Variable que contendrá el nombre de un jugador.listaBotones = []                   # Lista/arreglo que almacenará cada uno de los botones del tablero de juego.casillas = []                       # Lista/arreglo que almacenará la elección de cada jugador.etiquetaTurnoJugador = StringVar()  # Declara una variable Tkinter(), de tipo cadena para mostrar el nombre del jugador.numeroJugador = 0                   # Variable para cambiar entre jugador según el turno correspondiente.

# Función para configurar el diseño de la ventana principal y sus elementos.def tablero():
    # Configuración de la ventana.    ventanaPrincipal.title("Juego del gato")    # Título de la ventana    ventanaPrincipal.geometry("370x460")        # Medidas de la ventana
    # Etiqueta en la que se muestra el nombre del jugador según sea su turno proporcionado por la variable turnoJugador    etiquetaTurno = Label(ventanaPrincipal, textvariable=etiquetaTurnoJugador, font='bold 16')
    etiquetaTurno.place(x=130, y=10)    # Coordenadas de posición en la ventana.
    # Botón de inicio del juego que ejecuta a la función iniciarJuego()    botonIniciar = Button(ventanaPrincipal, bg='blue', fg='white', text='Iniciar juego', cursor="sizing", width=15, height=3, command=lambda: iniciarJuego())
    botonIniciar.place(x=130, y=380)    # Coordenadas de posición en la ventana.
    # Lineas que dividen el tablero.    linea1 = Canvas(ventanaPrincipal, width=310, height=10)
    linea1.place(x=30, y=140)           # Coordenadas de posición en la ventana.    linea1.create_line(310, 0, 0, 0, width=25, fill='black')

    linea2 = Canvas(ventanaPrincipal, width=310, height=10)
    linea2.place(x=30, y=240)           # Coordenadas de posición en la ventana.    linea2.create_line(310, 0, 0, 0, width=25, fill='black')

    linea3 = Canvas(ventanaPrincipal, width=10, height=310)
    linea3.place(x=130, y=45)           # Coordenadas de posición en la ventana.    linea3.create_line(0, 310, 0, 0, width=25, fill='black')

    linea4 = Canvas(ventanaPrincipal, width=10, height=310)
    linea4.place(x=230, y=45)           # Coordenadas de posición en la ventana.    linea4.create_line(0, 310, 0, 0, width=25, fill='black')

    # Botones del tablero de juego que ejecutan la función selección() enviando un número que hace referencia a su posición.    boton0 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(0))
    listaBotones.append(boton0) # El botón se almacena en la lista de botones.    boton0.place(x=50, y=70)    # Coordenadas de posición en la ventana.
    boton1 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(1))
    listaBotones.append(boton1)  # El botón se almacena en la lista de botones.    boton1.place(x=150, y=70)    # Coordenadas de posición en la ventana.
    boton2 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(2))
    listaBotones.append(boton2)  # El botón se almacena en la lista de botones.    boton2.place(x=250, y=70)    # Coordenadas de posición en la ventana.
    boton3 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(3))
    listaBotones.append(boton3)  # El botón se almacena en la lista de botones.    boton3.place(x=50, y=170)    # Coordenadas de posición en la ventana.
    boton4 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(4))
    listaBotones.append(boton4)  # El botón se almacena en la lista de botones.    boton4.place(x=150, y=170)   # Coordenadas de posición en la ventana.
    boton5 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(5))
    listaBotones.append(boton5)  # El botón se almacena en la lista de botones.    boton5.place(x=250, y=170)   # Coordenadas de posición en la ventana.
    boton6 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(6))
    listaBotones.append(boton6)  # El botón se almacena en la lista de botones.    boton6.place(x=50, y=270)    # Coordenadas de posición en la ventana.
    boton7 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(7))
    listaBotones.append(boton7)  # El botón se almacena en la lista de botones.    boton7.place(x=150, y=270)   # Coordenadas de posición en la ventana.
    boton8 = Button(ventanaPrincipal, width=9, height=3, relief=SOLID, cursor="pencil", command=lambda: selecion(8))
    listaBotones.append(boton8)  # El botón se almacena en la lista de botones.    boton8.place(x=250, y=270)  # Coordenadas de posición en la ventana.
    # Se llena la lista -> casillas = [] con la letra "N" para que la lista tenga un tamaño de 9 elementos.    for i in range(0, 9):       # Ciclo en el que se le asignan valores a la variable "i" en un rango de 0 a 8.        casillas.append("N")    # Se almacena la letra N en la posición i de la lista/arreglo.

# Función para bloquear todos los botones del tablero según sea necesario.def bloquearInicio():
    for i in range(0, 9):                           # Ciclo en el que se le asignan valores a la variable "i" en un rango de 0 a 8.        listaBotones[i].config(state="disable")     # Se inhabilita el botón en la posición i de la lista/arreglo.

# Función para iniciar la ejecución del juego.def iniciarJuego():
    for i in range(0, 9):                           # Ciclo en el que se le asignan valores a la variable "i" en un rango de 0 a 8.        listaBotones[i].config(state="normal")      # Se habilita el botón en la posición i de la lista/arreglo.        listaBotones[i].config(bg="lightgray")      # Se le asigna un nuevo fondo al botón.        listaBotones[i].config(text="")             # Se le asigna una cadena de texto vacía al botón para limpiar cualquier texto anterior.        casillas[i] = "N"                           # Para no tener que reiniciar la ventana al volver a precionar el botón Iniciar juego.    print casillas

    global nombreJugador1, nombreJugador2           # Se llama a las variables globales a las que vamos a acceder.
    # Lanza una ventana de diálogo en la que se puede ingresar una cadena de texto, la cual se va almacenar en la variable.    # Se le envía como parametro el título de la ventana y un mensaje para mostrar.    nombreJugador1 = tkSimpleDialog.askstring("Jugador", "Escribe el nombre del jugador 1: ")
    nombreJugador2 = tkSimpleDialog.askstring("Jugador", "Escribe el nombre del jugador 2: ")

    # Comprobamos que no se hayan ingresado datos sin tipo a las variables de los nombres o cadenas vacías    # Si se cumple la condición anterior se concatena el contenido de nombreJugador1 a la etiqueta que muestra los turnos.    if ((nombreJugador1 and nombreJugador2) is not None) and ((nombreJugador1 and nombreJugador2)!=""):
        etiquetaTurnoJugador.set("Turno: " + nombreJugador1)
    else:
    #Si no se cumple la condición aparece una ventana informando el error, y se bloquea el inicio del juego.        tkMessageBox.showwarning("Error", "Favor de llenar correctamente los nombres de usuario.")
        bloquearInicio()


# Función que slecciona y marca el botón (casilla) deacuerdo al turno y al jugador, recibiendo como parámetro el número del botón.def selecion(numero):
    global numeroJugador, nombreJugador1, nombreJugador2    # Se llama a las variables globales a las que vamos a acceder
    if numeroJugador == 0:                                  # Se verifica que la casilla contenga N y que sea el turno del jugador 0.        listaBotones[numero].config(text="X")               # Coloca X en el botón.        listaBotones[numero].config(bg="white")             # Cambia el fondo del botón.        casillas[numero] = "X"                              # Se almacena X en la lista casillas = []        numeroJugador = 1                                   # Cambia el turno del jugador.        etiquetaTurnoJugador.set("Turno: " + nombreJugador2)# La etiqueta cambia y muestra el nombre del otro jugador.        print casillas

    elif casillas[numero] == "N" and numeroJugador == 1:    # Se verifica que la casilla contenga N y que sea el turno del jugador 1.        listaBotones[numero].config(text="O")               # Coloca O en el botón.        listaBotones[numero].config(bg="lightblue")         # Cambia el fondo del botón.        casillas[numero] = "O"                              # Se almacena O en la lista casillas = []        numeroJugador = 0                                   # Cambia el turno del jugador.        etiquetaTurnoJugador.set("Turno: " + nombreJugador1)# La etiqueta cambia y muestra el nombre del otro jugador.        print casillas

    listaBotones[numero].config(state="disable")            # El botón seleccionado de acuerdo a su número (parámetro enviado) se desactiva.
    verificarVictoria()                                     # Se llama a la función verificarVictoria() al finalizar la selección en cada turno.

# Función que ejecuta las condiciones de victoria.def verificarVictoria():
    # Verificación de victoria horizontal para el numeroJugador = 0 (1).    if (casillas[0] == "X" and casillas[1] == "X" and casillas[2] == "X") or (
        casillas[3] == "X" and casillas[4] == "X" and casillas[5] == "X") or (
        casillas[6] == "X" and casillas[7] == "X" and casillas[8] == "X"):
        bloquearInicio()  # Bloquemos las botones.        # Mostramos ventana de victoria con nombreJugador1.        tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador1)

    # Verificación de victoria vertical para el numeroJugador = 0 (1).    elif (casillas[0] == "X" and casillas[3] == "X" and casillas[6] == "X") or (
          casillas[1] == "X" and casillas[4] == "X" and casillas[7] == "X") or (
          casillas[2] == "X" and casillas[5] == "X" and casillas[8] == "X"):
          bloquearInicio() # Bloquemos las botones.          # Mostramos ventana de victoria con nombreJugador1.          tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador1)

    # Verificación de victoria diagonal para el numeroJugador = 0 (1).    elif (casillas[0] == "X" and casillas[4] == "X" and casillas[8] == "X") or (
          casillas[2] == "X" and casillas[4] == "X" and casillas[6] == "X"):
        bloquearInicio()  # Bloquemos las botones.        # Mostramos ventana de victoria con nombreJugador1.        tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador1)

    # Verificación de victoria horizontal para el numeroJugador = 1 (2).    elif (casillas[0] == "O" and casillas[1] == "O" and casillas[2] == "O") or (
          casillas[3] == "O" and casillas[4] == "O" and casillas[5] == "O") or (
          casillas[6] == "O" and casillas[7] == "O" and casillas[8] == "O"):
          bloquearInicio()  # Bloquemos las botones.          # Mostramos ventana de victoria con nombreJugador2.          tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador2)

    # Verificación de victoria vertical para el numeroJugador = 1 (2).    elif (casillas[0] == "O" and casillas[3] == "O" and casillas[6] == "O") or (
          casillas[1] == "O" and casillas[4] == "O" and casillas[7] == "O") or (
          casillas[2] == "O" and casillas[5] == "O" and casillas[8] == "O"):
          bloquearInicio()  # Bloquemos las botones.          # Mostramos ventana de victoria con nombreJugador2.          tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador2)

    # Verificación de victoria diagonal para el numeroJugador = 1 (2).    elif (casillas[0] == "O" and casillas[4] == "O" and casillas[8] == "O") or (
          casillas[2] == "O" and casillas[4] == "O" and casillas[6] == "O"):
          bloquearInicio()  # Bloquemos las botones.          # Mostramos ventana de victoria con nombreJugador2.          tkMessageBox.showinfo("Ganaste", "Ganaste jugador: " + nombreJugador2)

    # Si todas las condiciones anteriores no se cumplen y todas las casillas han sido seleccionadas    # muestra una ventana de diálogo indicando el empate.    elif (casillas[0] != "N" and casillas[1] != "N" and casillas[2] != "N" and          casillas[3] != "N" and casillas[4] != "N" and casillas[5] != "N" and          casillas[6] != "N" and casillas[7] != "N" and casillas[8] != "N"):
          bloquearInicio()  # Bloquemos las botones.          # Mostramos ventana de empate con los nombres de los jugadores.          tkMessageBox.showinfo("Empate", "Los jugadores: " + nombreJugador1 + " y " + nombreJugador2 + " han empatado.")



tablero()                   # Se ejecuta la función tablero para crear todos los elementos de la ventana de juego.bloquearInicio()            # Bloqueamos los botones.ventanaPrincipal.mainloop() # Se ejecuta la ventana principal.









Comentarios

Entradas populares de este blog

Unidad 4 iluminación y sombreado

UNIDAD 3 GRAFICACION EN 3D

1.4 Aspectos matemáticos de la graficación (Geometría Fractal)