Esta actividad, al igual que la actividad obligatoria previa, consiste en realizar la programación literaria de un nuevo código.
import random
intentosRealizados = 0
numero = random.randint(1, 100)
print("Juego del Calamar. Adivina el número secreto o morirás.")
print("Quiero saber quién eres. Escribe tu nombre.")
nombre = input()
print("Jugador", nombre, "," " tienes diez intentos para salvar tu vida. ¿Quieres continuar? Responde si o no.")
resp = input ()
while (resp == "si","no"):
if (resp == "si"):
print("Muy bien. Eres valiente. Escribe tu primer intento")
if (resp == "no"):
print("Te jodiste. Igual debes continuar o morirás. Escribe tu primer intento.")
break
while intentosRealizados < 10:
estimacion = input()
estimacion = int(estimacion)
intentosRealizados = intentosRealizados + 1
if estimacion < numero:
print("Tu estimación es muy baja. Te quedan", 10-intentosRealizados, "intentos")
if estimacion > numero:
print('Tu estimación es muy alta. Te quedan', 10-intentosRealizados,"intentos")
if estimacion == numero:
break;
if estimacion == numero:
print('¡Has adivinado el número secreto en ' , intentosRealizados , 'intentos! Te salvaste')
if estimacion != numero:
print('El número era', numero,"; Vas a morir.")
El jugador debe adivinar en menos de 10 intentos el número aleatorio que a elegido el programa para ganar.
import random
Modulo que genera numeros aleatorios.
A continuación, vamos a realizar una serie de objetos o variables:
A continuacion las siguientes variables son la que se utilizaran en el programa.
intentosRealizados = 0
numero = random.randint(1, 100)
print("Juego del Calamar. Adivina el número secreto o morirás.")
print("Quiero saber quién eres. Escribe tu nombre.")
nombre = input()
Se requiere ingresar el nombre del jugador
print("Jugador", nombre, "," " tienes diez intentos para salvar tu vida. ¿Quieres continuar? Responde si o no.")
Se debe elegir entre las opciones si o no para continuar, para cada caso saldra un texto especifico.
resp = input ()
while (resp == "si","no"):
if (resp == "si"):
print("Muy bien. Eres valiente. Escribe tu primer intento")
if (resp == "no"):
print("Te jodiste. Igual debes continuar o morirás. Escribe tu primer intento.")
break
Se aplicara un loop que llega hasta 10 intentos y mientras se ingresa el estimado, se estara dando indicios de que numero, si es mayor o menor al estimado se mostra un mensaje especifico para cada caso.
while intentosRealizados < 10:
estimacion = input()
estimacion = int(estimacion)
intentosRealizados = intentosRealizados + 1
if estimacion < numero:
print("Tu estimación es muy baja. Te quedan", 10-intentosRealizados, "intentos")
if estimacion > numero:
print('Tu estimación es muy alta. Te quedan', 10-intentosRealizados,"intentos")
if estimacion == numero:
break;
if estimacion == numero:
print('¡Has adivinado el número secreto en ' , intentosRealizados , 'intentos! Te salvaste')
if estimacion != numero:
print('El número era', numero,"; Vas a morir.")
Se cuentan a cantidad veces que se intenta adividar el numero. Se solicita ingreso del numero y se guarda en la variable estimacion. Se imprime un mensaje indicando si fue mayor o menor el estimado. En caso de ganar indica que ha adivinado el numero, en caso contrario indica que vas a morir.
Un código fuente alternativo para un juego similar
import random
import os
ganadores = []
while True:
intentosRealizados = 0
numero = random.randint(1, 100)
#print(numero) #DEBUG
print ('Dame tu nombre')
nombre = input()
os.system('clear')
print(nombre + ', adivina el número que estoy pensando entre 1 y 100 en menos de 20 intentos')
while intentosRealizados < 20:
print('Intenta adivinar')
estimacion = input()
estimacion = int(estimacion)
intentosRealizados = intentosRealizados+1
if estimacion < numero:
print('Tu estimacion es muy baja')
if estimacion > numero:
print('Tu estimacion es muy alta')
if estimacion == numero:
break
if estimacion == numero:
if intentosRealizados < 20:
ganadores.append([intentosRealizados, nombre])
intentosRealizados = str(intentosRealizados)
print('Has adivinado mi numero en ' + intentosRealizados + ' intentos!')
if estimacion != numero:
print('Pues no. El número que estaba pensando era el ' + numero)
print('¿Nueva partida? ([Si]/No)')
seguir = input()
seguir = seguir.lower()
os.system('clear')
if seguir == 'no':
break
os.system('clear')
print ('Ranking:\n')
ganadores.sort()
for i in range(len(ganadores)):
pos = str(i + 1)
print (pos + '. ' + ganadores[i][1] + ', ' + str(ganadores[i][0]) + ' intentos')
Ya que se trata de un código bastante similar, se comentarán las diferencias en el mismo:
Se importa el modulo random y os
import random
import os
Se inicia con una variable de tipo lista, seguido de eso inicia un loop que se repetira hasta que se cumpla el codigo de forma correcta.
ganadores = []
while True:
intentosRealizados = 0
numero = random.randint(1, 100)
#print(numero) #DEBUG
print ('Dame tu nombre')
nombre = input()
os.system('clear')
print(nombre + ', adivina el número que estoy pensando entre 1 y 100 en menos de 20 intentos')
while intentosRealizados < 20:
print('Intenta adivinar')
estimacion = input()
estimacion = int(estimacion)
intentosRealizados = intentosRealizados+1
if estimacion < numero:
print('Tu estimacion es muy baja')
if estimacion > numero:
print('Tu estimacion es muy alta')
if estimacion == numero:
break
En el codigo se realiza lo siguiente:
- Ingresar el nombre.
- Saldra un mensaje en pantalla donde indica que debe adivinar un numero del 1 al 100 en menos de 20 intentos.
- Se ingresara el valor que se guardara en la variable estimacion
- En caso de ser mayor o menor, dara un mensaje personalizado, en caso de ser igual sale del loop y confirmara el resultado.
if estimacion == numero:
if intentosRealizados < 20:
ganadores.append([intentosRealizados, nombre])
intentosRealizados = str(intentosRealizados)
print('Has adivinado mi numero en ' + intentosRealizados + ' intentos!')
if estimacion != numero:
print('Pues no. El número que estaba pensando era el ' + numero)
print('¿Nueva partida? ([Si]/No)')
seguir = input()
seguir = seguir.lower()
os.system('clear')
if seguir == 'no':
break
En caso de ganar se indica que adivino el numero En caso de perder se indica el numero correcto Por ultimo pregunta si quiere volver a jugar, En caso de que no, termina el juego
os.system('clear')
print ('Ranking:\n')
ganadores.sort()
for i in range(len(ganadores)):
pos = str(i + 1)
print (pos + '. ' + ganadores[i][1] + ', ' + str(ganadores[i][0]) + ' intentos')
Se saca ranking de intentos de juego.