Skip to content

Latest commit

 

History

History
267 lines (207 loc) · 7.59 KB

ad3_2.md

File metadata and controls

267 lines (207 loc) · 7.59 KB

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

Juego del Calamar - Explicacion de codigo

El jugador debe adivinar en menos de 10 intentos el número aleatorio que a elegido el programa para ganar.

Importamos el módulo

import random

Modulo que genera numeros aleatorios.

Paso a paso

A continuación, vamos a realizar una serie de objetos o variables:

1. Variable

A continuacion las siguientes variables son la que se utilizaran en el programa.

1.1. El cual maneja los intentos
intentosRealizados = 0
2.1. Elegir un numero aleatorio
numero = random.randint(1, 100)

2. Instrucciones para el juego

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

3. Inicio del programa

3.1. Datos de entrada
nombre = input()

Se requiere ingresar el nombre del jugador

3.2. Confirmacion del nombre
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.

3.3. Interacion
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.

Código fuente alternativo

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:

Importar módulos

Se importa el modulo random y os

import random
import os

Variables

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:

  1. Ingresar el nombre.
  2. Saldra un mensaje en pantalla donde indica que debe adivinar un numero del 1 al 100 en menos de 20 intentos.
  3. Se ingresara el valor que se guardara en la variable estimacion
  4. 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.