Código+Fuente+Sección+20+Grupo+C

Regresar


 * CODIGO FUENTE**

NOTA: los espacios y tabulaciones fueron eliminados por el software de Wikispaces.
 * 1) Nombre Archivo: proyecto1.py
 * 2) Nombre: Fernando Castillo carnet: 08510
 * 3) Nombre: Rodrigo Escobar carnet: 09248
 * 4) Sección 20
 * 5) Última actualización: Guatemala 1 de septiembre de 2009
 * 6) Descricpción: Este programa es el juego Toque y Fama en donde el usuario tiene que adivinar 5 números y su posición en 5 oportunidades.
 * 1) Descricpción: Este programa es el juego Toque y Fama en donde el usuario tiene que adivinar 5 números y su posición en 5 oportunidades.

print "" print "TOQUE Y FAMA---" print "Por: Fernando Castillo y Rodrigo Escobar" print "\n\n Bienvenido!" print "TOQUE Y FAMA es un juego en donde usted intentará adivinar 5 números y su posición" print "respectivamente según 5 números generados por el computador." print "Usted dispondrá únicamente de 5 oportunidades para adivinar el orden y los números."

import random cadena = random.sample(xrange(0,9),5) cadena = str(cadena) termino = "\nEl juego ha terminado." otraoportunidad = "\nInténtelo de nuevo." oportunidades = 5 abecedario = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ°!#$%&/=?¡*¨[]_:;>¬\~^`<"
 * 1) IMPORTAR EL MÓDULO RANDOM |
 * 2) Se importa el módulo random porque se necesita crear una serie de números aleatoriamente
 * 3) por el computador.
 * 1) Se importa el módulo random porque se necesita crear una serie de números aleatoriamente
 * 2) por el computador.
 * 1) Aquí convertimos los números generados en un string para ser utilizados más adelante.
 * 1) DEFINCIÓN DE VARIABLES GLOBALES
 * 1) DEFINCIÓN DE VARIABLES GLOBALES
 * 1) Esta variable es la bandera que sale como resultado de una variable e inicia una condición sobre si seguir o no el juego.
 * 1) Esta variable indica que todavía queda oportunidades para tratar de adivinar el número.
 * 1) Esta variable es el contador de oportunidades que tiene el usuario para adivinar el número.
 * 1) La función que definimos como "abecedario" es muy importante para nuestra programación defensiva y así mismo el rendiminedo óptimo del programa.


 * 1) DEFINICIÓN DE FUNCIONES |
 * 2) Definimos funciones en nuestro programa debido a que necesitamos repetir comparaciones y condiciones
 * 3) que si, no fuera por estas, tendríamos que escribir los procesos cuantas veces los fueramos a usar.
 * 1) Definimos funciones en nuestro programa debido a que necesitamos repetir comparaciones y condiciones
 * 2) que si, no fuera por estas, tendríamos que escribir los procesos cuantas veces los fueramos a usar.
 * 1) que si, no fuera por estas, tendríamos que escribir los procesos cuantas veces los fueramos a usar.

def funnumer(x,y): """Esta función toma dos valores, los cortara en slices y comparará tanto las sclices de x con las de Y y así mostrará un resultado. En esta función se define el resultado principal de TOQUE Y FAMA. (última actualización: 28 agosto de 2009)
 * 1) Función funnumer
 * 1) Docstring de la función:

>>>x = '1 2 3 4 5 ' >>>y = [8, 4, 1, 7, 6] >>>funnumer(x,y) T X X T X """ verdadero = "F " falso = "X " talves = "T " if x[0] == cadena[1]: res1 = verdadero elif x[0] == y[1] or x[0] == y[4] or x[0] == y[7] or x[0] == y[10] or x[0] == y[13]: res1 = talves if x[0] != y[1] and x[0] != y[4] and x[0] != y[7] and x[0] != y[10] and x[0] != y[13]: res1 = falso if x[2] == y[4]: res2 = verdadero elif x[2] == y[1] or x[2] == y[4] or x[2] == y[7] or x[2] == y[10] or x[2] == y[13]: res2 = talves if x[2] != y[1] and x[2] != y[4] and x[2] != y[7] and x[2] != y[10] and x[2] != y[13]: res2 = falso if x[4] == y[7]: res3 = verdadero elif x[4] == y[1] or x[4] == y[4] or x[4] == y[7] or x[4] == y[10] or x[4] == y[13]: res3 = talves if x[4] != y[1] and x[4] != y[4] and x[4] != y[7] and x[4] != y[10] and x[4] != y[13]: res3 = falso if x[6] == y[10]: res4 = verdadero elif x[6] == y[1] or x[6] == y[4] or x[6] == y[7] or x[6] == y[10] or x[6] == y[13]: res4 = talves if x[6] != y[1] and x[6] != y[4] and x[6] != y[7] and x[6] != y[10] and x[6] != y[13]: res4 = falso if x[8] == y[13]: res5 = verdadero elif x[8] == y[1] or x[8] == y[4] or x[8] == y[7] or x[8] == y[10] or x[8] == y[13]: res5 = talves if x[8] != y[1] and x[8] != y[4] and x[8] != y[7] and x[8] != y[10] and x[8] != y[13]: res5 = falso res = res1 + res2 + res3 + res4 + res5 return res
 * 1) Definimos variables locales para la función
 * 1) Condiciones numero 1
 * 1) Condiciones para numero 2
 * 1) Condiciones para numero 3
 * 1) Condiciones para numero 4
 * 1) Condiciones para numero 5

def IDrespuesta(z): """Esta funcion toma el valor resultante de la función funnumer y lo compara para ver si el resultado es el correcto o no. Si lo es, entonces devuelve una variable que indica que ha ganado el juego, sino, entonces resta un valor a "oportunidades" y devuelve una variable que indica que se debe intentar otra vez. (última actualización 28 de agosto 2009) >>> z = 'F F F F F' >>> IDrespuesta(z) termino """ global oportunidades if z != 'F F F F F ': oportunidades = oportunidades - 1 if oportunidades > 0: print "Incorrecto." print "Quedan", oportunidades, "oportunidades" resp = otraoportunidad elif oportunidades == 0: print "No hay más oportunidades." resp = termino if z == 'F F F F F ': print "CORRECTO!!!! Ha ganado el juego!!" oportunidades=0 resp = termino return resp
 * 1) Funcion IDrespuesta


 * 1) Función ingreso

def ingreso: """Esta función es la que pide el ingreso de los número y también los compara para que no estén repetidos, para que estén separados de un espacio para que no sean letras o algún otro caracter inválido, y para que sean 5 números. (última actualización 1 de septiembre de 2009) >>>1 2 3 4 5 >>> ingreso

""" numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while len(numero) == 0: #ciclo para verificar el ingreso de datos print "Debe ingresar 5 números." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (len(numero) > 10) or (len(numero) < 9): # ciclo para verificar cantidad de números print "\nLa cantidad de caracteres ingresados es incorrecta." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[1] != " ") or (numero[3] != " ") or (numero[5] != " ") or (numero[7] != " "): #ciclo para verificar si los números están en la posición correccta. print "\nAsegúrese de ingresar los números separados por un espacio" numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[0] in abecedario) or (numero[2] in abecedario) or (numero[4] in abecedario) or (numero[6] in abecedario) or (numero[8] in abecedario): #ciclo para verificar que no sean letras ni otros caracters los ingresados print "\nUsted ingresó caracteres inválidos. Las letras y símbolos no son permitidas en el juego." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[0] == numero[2]) or (numero[0] == numero[4]) or (numero[0] == numero[6]) or (numero[0] == numero[8]): print "\nUsted ingresó números repetidos." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[2] == numero[0]) or (numero[2] == numero[4]) or (numero[2] == numero[6]) or (numero[2] == numero[8]): print "\nUsted ingresó números repetidos." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[4] == numero[0]) or (numero[4] == numero[2]) or (numero[4] == numero[6]) or (numero[4] == numero[8]): print "\nUsted ingresó números repetidos." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[6] == numero[0]) or (numero[6] == numero[2]) or (numero[6] == numero[4]) or (numero[6] == numero[8]): print "\nUsted ingresó números repetidos." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") while (numero[8] == numero[0]) or (numero[8] == numero[2]) or (numero[8] == numero[4]) or (numero[8] == numero[6]): print "\nUsted ingresó números repetidos." numero = raw_input("\nIngrese 5 números con un espacio entre cada número: ") #ciclos para verificar la unicidad en la serie. respuesta = funnumer(numero,cadena) return respuesta

while oportunidades>0: numeropantalla = ingreso print numeropantalla resultado = IDrespuesta(numeropantalla) print resultado print "--" if resultado == termino: otravez = raw_input("\n¿Desea jugar otra vez? ") # se arma la variable para pregutnar si se quiere repetir eljuego. if otravez == "no" or otravez == "No" or otravez == "NO" or otravez == "n" or otravez == "N": print "\nGracias por jugar TOQUE Y FAMA" print "Derechos reservados Fernando Castillo y Rodrigo Escobar. Guatemala, Centroamérica 2009." #datos finales while (otravez == "si") or (otravez == "Si") or (otravez == "SI") or (otravez == "S") or (otravez == "s"): cadena = random.sample(xrange(0,9),5) cadena = str(cadena) oportunidades = int oportunidades = 5 while oportunidades>0: numeropantalla = ingreso print numeropantalla resultado = IDrespuesta(numeropantalla) print resultado print "--" if resultado == termino: otravez = raw_input("\n¿Desea jugar otra vez? ") if otravez == "no" or otravez == "No" or otravez == "NO" or otravez == "n" or otravez == "N": print "\nGracias por jugar TOQUE Y FAMA" print "Derechos reservados Fernando Castillo y Rodrigo Escobar. Guatemala, Centroamérica 2009."
 * 1) datos generados de nuevo para cuando se quiera repeteir el juego. se genera otra cadena y se pide una nueva combinación de números.