Diseño(rod)

=Diseño =  Preguntas Insustituibles: ¿Cual es la meta? Crear un juego en el cual el usuario debe ir adivinando letra por letra una palabra y debe adivinar la palabra en cierta cantidad de intentos. Al no adivinar en cierta cantidad de intentos el juego mostrara la palabra que era y el usuario será "ahorcado"! ¿Cuales son los datos? o Las letras del abecedario. ¿Cuales son las condiciones?  ¿Cuales son los procesos?
 * 1) El usuario debe ingresar una letra del abecedario.
 * 2) El usuario tiene un limite de oportunidades.
 * 3)   Solo se puede ingresar una letra a la vez.
 * 4) El programa debe mostrar el puntaje obtenido por el usuario.
 * 5)   No se puede ingresar una letra dos veces(si la palabra posee una letra repetida, cuando el usuario la ingrese el programa le mostrara en que posiciones se encuentra la letra).
 * 1) el usuario empieza el juego.
 * 2) el usuario trata de adivinar la palabra, haciendo "click" en la letra que el crea que este en la palabra.
 * 3) el usuario debe adivinar la palabra o tratar de adivinarla en la cantidad de oportunidades prederterminada
 * 4) el juego le da el puntaje, que logro el usuario
 * 5) termina el juego

Para llevar a cabo la solucion del Juego, utilizamos lo que fue la GUI, de Python. Python contiene muchas GUI, la que nosotros utilizamos fue la llamda Tkinter. Una Gui (graphic user interface) es una interface grafica de usuario, la cual simplificar el uso de los ordenadores para usuarios de todo tipo y no sólo para los expertos, se ha convertido en una práctica habitual utilizar ambientes visuales por medio de la llamada interfaz gráfica de usuario (IGU ó GUI en inglés) para que el usuario interactúe y establezca un contacto más fácil e intuitivo con el ordenador. En la actualidad la cultura de la interfaz "amigable" y vistosa. En estos casos, un simple clic de ratón sobre algún gráfico (imagen) que aparece en la pantalla, sustituye tarea de escribir un código fuente para que el ordenador interprete que debe realizar alguna acción. Los primeros ordenadores personales, los llamados Pcs, pero hasta que generalizaron las interfaces gráficas de usuario. El escritorio del sistema operativo Windows de Microsoft y su sistema de ventanas sobre la pantalla se ha estandarizado y universalizado, pero fueron los ordenadores Macintosh de la compañía Apple los primeros que introdujeron las interfaces gráficas de usuario.

La logica de este programa  La foma como va a funcionar este programa es: se ejecutara el programa en el IDLE, luego este abirara una ventad (GUI) en donde el usuario jugará por medio de programacion por eventos, esto quiere decir que el usuario decide el orden de pulsar los botones o de cierta forma el orden de ejecutar el programa. Esta ventana contendra distintos botones para poder hacer distintas acciones como: iniciar el juego insertar una letra y terminar el juego. al pulsar cada boton esto hará que corran distintas funciones para para que el programa empieze a funcionar y el usuario empiece a jugar. el programa eligira una palabra al azar y el usuario empezara a adivinarla. El programa probara si cada letra que ingresa el usuario esta en la palabra si la letra esta en la palabra entonces aparecera en la posicion correcta sino el usuario perdera una oportunidad. asi sucesivamente hasta que el usuario ya no tenga oportunidades o que el usuario adivine la palabra que eligio el programa.

Modulos: los modulos a utilizados fueron: <span style="font-family: Georgia,serif;">
 * <span style="font-family: Georgia,serif;">random.
 * <span style="font-family: Georgia,serif;">GUI
 * <span style="font-family: Georgia,serif;">Doc Test

Funciones: Se utilizaron distintas funciones para este programa, se crearon funciones para dibujar los cuadros y los ojos que salen si el usuario gano o perdio en el juego, este sistema tambien representa las oportunidades que contiene el usuario para poder adivinar la letar, tambien una funcion la cual verifica si la letra esta en la palabra elegida, otra par dibujar la letra en la ventana de interaccion con el usuario, y asi diferentes funciones para que se pueda correr el programa y jugar el juego.

Estructura del programa: from Gui import* palabra=1 PALABRA='AVION' Texto1='_' Texto2='_' Texto3='_' Texto4='_' Texto5='_' intentos=0 g=Gui g.title('AHORCADO') g.fr(side=LEFT) canvas = g.ca(width=300, height=250) #ajuste de tamaño de la ventana canvas.rectangle(-300,-150],[300,150,'black')#fondo canvas.text([180,-110],'AHORCADO',fill='white', width="70") g.endfr #Fin del primer frame g.fr(side=LEFT) def Next: """Función que pasa a la siguiente palabra por medio del incremento del contador "palabra".""" global PALABRA global Texto1, Texto2, Texto3, Texto4, Texto5 global palabra global intentos Texto1='_' Texto2='_' Texto3='_' Texto4='_' Texto5='_' intentos=0 if palabra!=5: palabra=palabra+1 elif palabra==5: palabra=1 if palabra==1: PALABRA='AVION' elif palabra==2: PALABRA='ARBOL' elif palabra==3: PALABRA='CAZAR' elif palabra==4: PALABRA='SILLA' elif palabra==5: PALABRA='CARRO' TEXTO= Texto1+' '+Texto2+' '+Texto3+' '+Texto4+' '+ Texto5 canvas.rectangle(-300,-150],[300,150,'black') canvas.text([-50,0],TEXTO,fill='white', width="50")
 * 1) -*- coding: cp1252 -*-
 * 2) ahorcado.py
 * 3) Rodrigo Mosquera
 * 4) Jose Andres Cruz
 * 5) Camilo Galindo
 * 6) el siguiente programa emulara un juego de ahorcado
 * 7) Fecha de entrega: 12 de octubre del 2009
 * 8) Modulo
 * 1) Modulo
 * 1) Modulo
 * 1) Inicio de variables
 * 1) Grafico
 * 1) Inicio del primer frame
 * 1) Inicio del segundo frame

def verificar(letra): """Función que verifica si la letra está dentro de la palabra. Si la letra si esta dentro de la palabra cambia el espacio vacío por la letra. Por otro lado, si la letra no esta dentro de la palabra, incrementa la variable de "intentos" y dibuja una parte del muñeco. Finalmente si ya era el ultimo intento, muestra en la pantalla que perdio y reinicia todas las variables para que el usuario pueda dar "next" y seguir jugando""" global Texto1, Texto2,Texto3,Texto4,Texto5 global PALABRA global palabra global intentos if letra in PALABRA:#mira si la letra esta dentro de la palabra if palabra==1:#avion if letra=='A': Texto1='A' elif letra=='V': Texto2='V' elif letra=='I': Texto3='I' elif letra=='O': Texto4='O' elif letra=='N': Texto5='N' if palabra==2:#arbol if letra=='A': Texto1='A' elif letra=='R': Texto2='R' elif letra=='B': Texto3='B' elif letra=='O': Texto4='O' elif letra=='L': Texto5='L' if palabra==3:#cazar if letra=='C': Texto1='C' elif letra=='A': Texto2='A' Texto4='A' elif letra=='Z': Texto3='Z' elif letra=='R': Texto5='R' if palabra==4:#silla if letra=='S': Texto1='S' elif letra=='I': Texto2='I' elif letra=='L': Texto3='L' Texto4='L' elif letra=='A': Texto5='A' if palabra==5:#carro if letra=='C': Texto1='C' elif letra=='A': Texto2='A' elif letra=='R': Texto3='R' Texto4='R' elif letra=='O': Texto5='O' TEXTO= Texto1+' '+Texto2+' '+Texto3+' '+Texto4+' '+ Texto5 canvas.text([-50,0],TEXTO,fill='white', width="50") if Texto1!='_' and Texto2!='_' and Texto3!='_' and Texto4!='_' and Texto5!='_': #verifica si gano, es decir que ya no hay ningun espacio ( _ ) en la palabra canvas.rectangle(-300,-150],[300,150,'black') canvas.text([180,-110],'AHORCADO',fill='white', width="70") Texto1='_' Texto2='_' Text3='_' Texto4='_' Texto5='_' canvas.rectangle(0,-50],[75,-25,'red') canvas.rectangle(0,-25],[75,0,'blue') canvas.rectangle(0,0],[75,25,'yellow') canvas.rectangle(0,25],[75,50,'orange') canvas.rectangle(0,50],[75,75,'purple') canvas.circle([20, 70], 25, 'white') canvas.circle([60, 70], 25, 'white') canvas.circle([20, 70], 10, 'black') canvas.circle([60, 70], 10, 'black')

canvas.text([-50,0],'GANO',fill='white', width="50") else: intentos=intentos+1 if intentos==1: canvas.rectangle(0,-50],[75,-25,'red')#dibuja cada parte del muñeco dependiendo el numero de intento elif intentos==2: canvas.rectangle(0,-50],[75,-25,'red') canvas.rectangle(0,-25],[75,0,'blue') elif intentos==3: canvas.rectangle(0,-50],[75,-25,'red') canvas.rectangle(0,-25],[75,0,'blue') canvas.rectangle(0,0],[75,25,'yellow') elif intentos==4: canvas.rectangle(0,-50],[75,-25,'red') canvas.rectangle(0,-25],[75,0,'blue') canvas.rectangle(0,0],[75,25,'yellow') canvas.rectangle(0,25],[75,50,'orange') elif intentos==5: canvas.rectangle(-300,-150],[300,150,'black') canvas.text([180,-110],'AHORCADO',fill='white', width="70") Texto1='_' Texto2='_' Text3='_' Texto4='_' Texto5='_' canvas.rectangle(0,-50],[75,-25,'red') canvas.rectangle(0,-25],[75,0,'blue') canvas.rectangle(0,0],[75,25,'yellow') canvas.rectangle(0,25],[75,50,'orange') canvas.rectangle(0,50],[75,75,'purple') canvas.circle([20, 70], 25, 'white') canvas.circle([60, 70], 25, 'white') canvas.text([20,70],'X',fill='black', width="50") canvas.text([60,70],'X',fill='black', width="50")

canvas.text([-50,0],'PERDIO',fill='white', width="50") TEXTO= Texto1+' '+Texto2+' '+Texto3+' '+Texto4+' '+ Texto5 canvas.text([-50,0],TEXTO,fill='white', width="50") g.col g.gr(width = 5,cols=1) g.bu(text='NEXT', command=Callable(Next)) g.endgr g.gr(cols= 9) g.bu(text='A', command=Callable(verificar,'A')) g.bu(text='B', command=Callable(verificar,'B')) g.bu(text='C', command=Callable(verificar,'C')) g.bu(text='D', command=Callable(verificar,'D')) g.bu(text='E', command=Callable(verificar,'E')) g.bu(text='F', command=Callable(verificar,'F')) g.bu(text='G', command=Callable(verificar,'G')) g.bu(text='H', command=Callable(verificar,'H')) g.bu(text="I", command=Callable(verificar,'I')) g.endgr g.gr(cols = 9) g.bu(text="J", command=Callable(verificar,'J')) g.bu(text='K', command=Callable(verificar,'K')) g.bu(text='L', command=Callable(verificar,'L')) g.bu(text='M', command=Callable(verificar,'M')) g.bu(text='N', command=Callable(verificar,'N')) g.bu(text='O', command=Callable(verificar,'O')) g.bu(text='P', command=Callable(verificar,'P')) g.bu(text='Q', command=Callable(verificar,'Q')) g.bu(text='R', command=Callable(verificar,'R')) g.endgr g.gr(cols=9) g.bu(text='S', command=Callable(verificar,'S')) g.bu(text='T', command=Callable(verificar,'T')) g.bu(text='U', command=Callable(verificar,'U')) g.bu(text='V', command=Callable(verificar,'V')) g.bu(text='W', command=Callable(verificar,'W')) g.bu(text='X', command=Callable(verificar,'X')) g.bu(text='Y', command=Callable(verificar,'Y')) g.bu(text='Z', command=Callable(verificar,'Z')) g.endgr g.endfr#Fin del segundo Frame g.mainloop
 * 1) Adición de los botones por medio de un grid de nueve columnas, a excepción de la prmera que posee solo una

Menu