Programa+fuente+MArgarita

Nuestro programa es el siguiente:


 * 1) -*- coding: cp1252 -*-
 * Proyecto2.py
 * Rudolf Apel 09090
 * 1) Yisel Alonso 09412
 * 2) Fernando Castillo 08510
 * 3) Este programa sirve para jugar " Los petalos de Margarita"**

from Gui import * import random import time
 * 1) Importar los modulos necesarios

g=Gui g.title("PETALOS DE MARGARITA")
 * 1) para correr el modulo Gui

petalos=[2,2,2,2,2,2,2,2] compu=range(8)
 * 1) Creacion de las variables globales.

random.shuffle(compu) print compu
 * 1) Genera el orden aleatorio en el que va a tirar la computadora

tres=0
 * 1) Variables auxiliar.

def seleccionarPetalos(x): global petalos global tres aux1=0 # Variable auxiliar.INDICAR SI EL PETALO SELECCIONADO ESTA O NO A LA PAR DE UNO YA ANARANJADITO (1=NO ESTA) if x!=7:#SI no es el ultimo petalo entonces: for i in range(8): if (petalos[i]==1 and not(petalos[x+1]==1 or petalos[x-1]==1)) or tres==2: # PETALO SELECCIONADO,y, ninguno de los petalos de a los lados esta seleccionado aux1=1 else: for i in range(8): if (petalos[i]==1 and not(petalos[0]==1 or petalos[x-1]==1)) or tres ==2: aux1=1 if aux1==1:# variable auxiliar inicializada en el IF anterior... si no cumple se va al else. for i in range(8): if petalos[i]==1: petalos[i]=2#CUANDO se selecciona un petalo q no esta a la par. se regresa a 2 if i==0: bp1.config(image=petalo1) if i==1: bp2.config(image=petalo2) if i==2: bp3.config(image=petalo3) if i==3: bp4.config(image=petalo4) if i==4: bp5.config(image=petalo5) if i==5: bp6.config(image=petalo6) if i==6: bp7.config(image=petalo7) if i==7: bp8.config(image=petalo8) tres=0 else:# si no cumplio la variable auxiliar aux1 if petalos[x]!=0: petalos[x]=1 #el petalo q apachamos SI NO SE CUMPLIERON LAS CONDICIONES ANTERIORES. Se convierte en 1. tres=tres+1#A cada petalo que seleccionamos. se le suma a la variable tres 1... if x==0: bp1.config(image=PetaloSelec1) if x==1: bp2.config(image=PetaloSelec2) if x==2: bp3.config(image=PetaloSelec3) if x==3: bp4.config(image=PetaloSelec4) if x==4: bp5.config(image=PetaloSelec5) if x==5: bp6.config(image=PetaloSelec6) if x==6: bp7.config(image=PetaloSelec7) if x==7: bp8.config(image=PetaloSelec8)
 * 1) Definicion de las funciones.

print petalos

def cortar: """Sirve para cortar los petalos seleccionados >>> petalos=[1,2,2,2,2,2,2,2] >>> i=0 >>> petalos[i]=0 """ global petalos global tres for i in range(8): if petalos[i]==1:#A todos los petalos seleccionados se les convierte en cero, para luego cambiar su imagen. petalos[i]=0 if i==0: bp1.config(image=PetaloAdios) if i==1: bp2.config(image=PetaloAdios) if i==2: bp3.config(image=PetaloAdios) if i==3: bp4.config(image=PetaloAdios) if i==4: bp5.config(image=PetaloAdios) if i==5: bp6.config(image=PetaloAdios) if i==6: bp7.config(image=PetaloAdios) if i==7: bp8.config(image=PetaloAdios) print petalos tres=0#INICIALIZA variable auxiliar

print petalos

if not(gano):# Si el jugador no gana se prosigue a tirar la compu, que luego se verifica si el jugador perdio. tirocompu perdio

def tirocompu: """ Jugador automatico del programa """ time.sleep(1) for i in range(8): if petalos[compu[i]]==2:#Busca que el petalo este disponible. petalos[compu[i]]=0 #ORDEN DE TIRO DE LA COMPUTADORA.GENERADO POR UN RANGE(8) if compu[i]==0: bp1.config(image=PetaloAdios) if compu[i]==1: bp2.config(image=PetaloAdios) if compu[i]==2: bp3.config(image=PetaloAdios) if compu[i]==3: bp4.config(image=PetaloAdios) if compu[i]==4: bp5.config(image=PetaloAdios) if compu[i]==5: bp6.config(image=PetaloAdios) if compu[i]==6: bp7.config(image=PetaloAdios) if compu[i]==7: bp8.config(image=PetaloAdios) break print petalos

def gano: """Muetra mensaje si el jugador gano >>> gano False """ cont=0 if perdiste!=1: for i in range(8): if petalos[i]==0:#Cuenta cuantos petalos se han quitado. cont=cont+1 if cont==8:#Si se han quitado 8 petalos se muesrta el mensaje. cortar.config(image=CentroGano) return True return False

def perdio: """ Analiza si el jugador perdio luego de el tiro del jugador automantico >>> perdio """ cont=0 for i in range(8): if petalos[i]==0:#Cuenta cuantos petalos se han quitado cont=cont+1 if cont==8:#Si se han quitado 8 petalos se muestra el mnsaje cortar.config(image=CentroPerdio) return True

def playAgain: global petalos global compu petalos=[2,2,2,2,2,2,2,2] random.shuffle(compu) for i in range(8): if i==0: bp1.config(image=petalo1) if i==1: bp2.config(image=petalo2) if i==2: bp3.config(image=petalo3) if i==3: bp4.config(image=petalo4) if i==4: bp5.config(image=petalo5) if i==5: bp6.config(image=petalo6) if i==6: bp7.config(image=petalo7) if i==7: bp8.config(image=petalo8) cortar.config(image=centro) tres=0 def instructions: """Muestra instrucciones en un frame >>> instructions """ y = Gui y.title("INSTRUCCIONES") canvas = y.ca(width =500,height=35) y.la(text="PETALOS DE MARGARITA\n" "\n*El juego consiste en quitar los petalos de la flor.\n" "\n*EL usuario compite contra la computadora para quitar el ultimo de los petalos.\n" "\n*Si usted desea elegir(estrategicamente) que la computadora realice el primer tiro. Elija el boton: INICIA LA COMPU\n" "\n*En su turno usted podra elegir uno o dos petalos. Para tener la opcion de elegir los dos petalos estos deben de estar de forma adyacente.\n" "\n*Para cortar el petalo seleccionado usted debe de presionar el centro de la flor, el cual dice: CUT\n" "\n*Si usted no ha seleccionado ningun petalo, y selecciona el boton CUT usted PERDERA un turno.\n" "\n*Al finalizar el juego se mostrara un mensaje indicando si gano o perdio.\n" "\n*Si desea volver a jugar presione el boton JUGAR DE NUEVO.\n" "\n*ESPERAMOS QUE LE GUSTE!! =)\n")
 * 1) SE inicializan de nuevo las variables necesarias.
 * 1) se cambian las imagienes de los petalos
 * 1) Mostrar instrucciones en pantalla.

y.mainloop

def testDoc: import doctest doctest.testmod(verbose=True)

petalo1 = PhotoImage(file='Petalo1.gif') petalo2 = PhotoImage(file='Petalo2.gif') petalo3 = PhotoImage(file='Petalo3.gif') petalo4 = PhotoImage(file='Petalo4.gif') petalo5 = PhotoImage(file='Petalo5.gif') petalo6 = PhotoImage(file='Petalo6.gif') petalo7 = PhotoImage(file='Petalo7.gif') petalo8 = PhotoImage(file='Petalo8.gif') PetaloSelec1 = PhotoImage(file='PetaloSelec1.gif') PetaloSelec2 = PhotoImage(file='PetaloSelec2.gif') PetaloSelec3 = PhotoImage(file='PetaloSelec3.gif') PetaloSelec4 = PhotoImage(file='PetaloSelec4.gif') PetaloSelec5 = PhotoImage(file='PetaloSelec5.gif') PetaloSelec6 = PhotoImage(file='PetaloSelec6.gif') PetaloSelec7 = PhotoImage(file='PetaloSelec7.gif') PetaloSelec8 = PhotoImage(file='PetaloSelec8.gif') PetaloAdios = PhotoImage (file='PetaloAdios.gif') CentroGano = PhotoImage (file='CentroGano.gif') CentroPerdio = PhotoImage (file='CentroPerdio.gif') centro = PhotoImage(file='centroFlor.gif') IniciaCompu = PhotoImage (file='IniciaCompu.gif') JugarNuevo = PhotoImage (file='JugarNuevo.gif') instrucciones= PhotoImage(file='instrucciones.gif')
 * 1) Petalos originales
 * 1) Petalos seleccionados
 * 1) Otros botonoes

g.gr(cols=4, cweights=[250], rweights=[250]) bp1=g.bu(image=petalo1,command=Callable(seleccionarPetalos,x=0)) bp2=g.bu(image=petalo2,command=Callable(seleccionarPetalos,x=1)) bp3=g.bu(image=petalo3,command=Callable(seleccionarPetalos,x=2)) bp4=g.bu(image=petalo4,command=Callable(seleccionarPetalos,x=3)) bp5=g.bu(image=petalo5,command=Callable(seleccionarPetalos,x=4)) bp6=g.bu(image=petalo6,command=Callable(seleccionarPetalos,x=5)) bp7=g.bu(image=petalo7,command=Callable(seleccionarPetalos,x=6)) bp8=g.bu(image=petalo8,command=Callable(seleccionarPetalos,x=7)) cortar=g.bu(image=centro, command=cortar) iniciaCompu=g.bu(image=IniciaCompu,command=tirocompu) Nuevo=g.bu(image=JugarNuevo, command=playAgain) InstruccionesJuego=g.bu(image=instrucciones,command=instructions) g.grid(cortar,i=1,j=1) g.grid(bp1, i=0, j=1) g.grid(bp2, i=0, j=2) g.grid(bp3, i=1, j=2) g.grid(bp4, i=2, j=2) g.grid(bp5, i=2, j=1) g.grid(bp6, i=2, j=0) g.grid(bp7, i=1, j=0) g.grid(bp8, i=0, j=0) g.grid(iniciaCompu, i=0, j=3) g.grid(Nuevo, i=1, j=3) g.grid(InstruccionesJuego, i=2, j=3)
 * 1) Grid. Genera una cuadricula para trabajar.tipo excel.
 * 1) botones.
 * 1) Posicion de los botones.

g.mainloop