dariosanjur

Actividad voluntaria (actividad dirigida 3)

Esta actividad, al igual que la actividad obligatoria previa, consiste en realizar la programación literaria de un nuevo código.

Código fuente

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.")

Explicacion del codigo Juego del Calamar

Es un juego que consiste en que un jugador adivine en menos de 10 intentos el numero aleatorio que ha elegido el programa para ganar.

Importamos el módulo

import random

Secuencia de pasos del codigo

1. Se inicializa variable

intentosRealizados = 0

2. se crea variable para elegir un numero aleatorio

numero = random.randint(1, 100)

3. Se imprimer unos mensajes en pantalla

print("Juego del Calamar. Adivina el número secreto o morirás.")
print("Quiero saber quién eres. Escribe tu nombre.")

4. Se consigue el nombre del usuario

nombre = input()

5. Imprimira el nombre de la persona y le pregunta si desea continuar

print("Jugador", nombre, "," " tienes diez intentos para salvar tu vida. ¿Quieres continuar? Responde si o no.")

6. Elegir decision si o no

En caso de elegir si sale el siguiente mensaje: Muy bien. Eres valiente. Escribe tu primer intento En cason de elegir no: Te jodiste. Igual debes continuar o morirás. Escribe tu primer intento.

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

7. Repeticiones hasta conseguir el numero o perder en el intento

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 solicitada que el usuario ingrese un numero para verificar si coincide. En caso de ser muy bajo el numero : Tu estimación es muy baja. Te quedan", 10-intentosRealizados, "intentos" En caso de ser muy alto: Tu estimación es muy alta. Te quedan', 10-intentosRealizados,"intentos En caso de coincidir terminara los ciclos. Mostrara: ¡Has adivinado el número secreto en ' , intentosRealizados , 'intentos! Te salvaste En caso de no coincidir mostrara: El número era', numero,"; Vas a morir.

Código fuente alternativo

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')

Importar módulos

import random
import os

Secuencia de pasos del codigo

Se guardara un ranking de ganadores en la variable de ganadores

ganadores = []

Se tendra 20 intentos con numeros del 1 al 100 para poder adivinar el numero.

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 caso de ser un numero muy alto mostrara: Tu estimacion es muy alta En caso de ser un numero muy bajo mostrara: Tu estimacion es muy baja En caso de coincidir termina el ciclo de intentos

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

Se muestra ranking cuando ya no se quiere seguir participando.

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')