Actividad Guiada Python: Listas

 

Actividad guiada

 Aventura: sobreviviendo al Twister

Objetivo:

Sobrevive a un Twister inminente eligiendo un refugio, recolectando suministros críticos y fortaleciendo tu posición. Utilizarás listas, bucles while y for, y condiciones if para tomar decisiones estratégicas que determinarán tu destino.

En esta aventura te enfrentarás a un peligroso Twister. 

Deberás elegir un refugio, recolectar los suministros adecuados y decidir si fortaleces tu refugio o arriesgas salir a buscar más recursos. 

¡Cada decisión cuenta y podría significar la diferencia entre la vida y la muerte!

Variables del sistema:

  1. refugios: Una lista que contiene los siguientes tipos de refugios: Subterráneo, en las Montañas, en el Bosque.
  2. inventario_usuario: Una lista vacía donde se almacenarán los suministros recolectados por el usuario. Tiene una capacidad máxima de 5 elementos.
  3. suministros_clave: Una lista con los suministros esenciales para fortalecer los refugios. Incluye elementos como "Manta térmica", "Encendedor", "Comida enlatada", "Botiquín básico", "Kit de primeros auxilios", "Linterna", "Radio", "Filtro de agua", "Cobija", y "Herramientas".
  4. furia_del_twister: Una variable que almacena un número aleatorio entre 0 y 9, representando la peligrosidad del Twister que te acecha.

Paso 1: Selección de Refugio

Tienes que seleccionar un refugio para protegerte del Twister. Hay tres refugios disponibles: uno subterráneo, uno en el bosque, y otro en las montañas. Cada refugio tiene un nivel de peligrosidad diferente y una cantidad de suministros disponible.

Instrucciones:

  1. Se deberá recorrer la lista de refugios con un bucle for y mostrar en consola las tres opciones de refugio.
  2. Debes pedir al usuario que elija un refugiodel 1 al 3.Recuerda:la opción 1 es el primer elemento de la lista[1-1] y así sucesivamente.
  3. Almacena el refugio correspondiente a su respuesta en una nueva variable llamada refugio_usuario.
  4. Paso 2: Recolectar suministros

    Una vez seleccionado el refugio, debes recolectar los suministros disponibles en el. Cada refugio tiene un suministro clave que esesencial para fortalecer el refugio. Ademas, tienes una capacidad de inventario limitada, por lo que debes elegir cuidadosamente qué suministros llevar contigo.

    Instrucciones:

    1. Se te mostrará una lista de suministros_claves con un for.
    2. Con un bucle while solicita que ingrese hasta 5 suministro en este caso.
    3. El usuario selecciona por teclado qué suministros desea recolectar, y almacenará en la lista inventario_del_usuario.
    4. ¡Ojo! El usuario puede detener la recolección en cualquier momento escribiendo ‘salir’.
    5. Al finalizar el bucle, muestra un mensaje si se ha alcanzado el máximo de suministros y recorre la lista inventario_usuario para mostrar los suministros recolectados.

    Paso 3: Fortalecer el refugio

    Debes usar el suministro clave que recolectaste para fortalecer el refugio y aumentar tus probabilidades de sobrevivir al Twister.

    Instrucciones:

    1. El juego comprobará si tienes el suministro clave en tu inventario, el suministro clave corresponde al elemento en la posición que almacena la variable furia_del_twister en la lista suministros_clave. O sea, suministros_clave[furia_del_twister] Puedes resolver esta parteusando este random.choice(). Esta funcion elige un elemento al azar de la secuencia list
    2. si tienes suministro clave, el refugio se fortalecera. Almacena este estado en una variable booleana es_seguro=True
    3. Si no tienes suministros clave, el refugio permanecera inseguro, aumentando el riesgo de sobrevivir.
  5. Paso 4: Evaluación Final

    El Twister llega, y la seguridad de tu refugio será puesta a prueba. Si tu refugio está bien fortalecido y la suerte está de tu lado, sobrevivirás. De lo contrario, será el fin del juego.

    Instrucciones:

    1. El juego evaluará la seguridad del refugio utilizando la variable es_seguro.
    2. Si el refugio es seguro, sobrevivirás. Muestra el mensaje "Has sobrevivido al Twister! El refugio resistió. ¡Felicidades!, has ganado con el (suministro_clave)!"
    3. Si el refugio no es seguro, será game over. Muestra el mensaje "Game Over, el refugio no resistió el Twister te falto (suministro_clave)."

    Mejora 1: Modo Multijugador

    Descripción: Agrega la opcion de modo multijugador, donde el juego se ejecutará en un bucle infinito y permitirá almacenar los puntos de cada jugador.

    Instrucciones: Cada jugador tomará su turno infinito para permitir que varios jugadores participen en el juego. Al final de cada ronda, muestra la puntuación de cada jugador y permite que el siguiente jugador comience su turno.

  6. Mejora 2: MODO ESTRATÉGICO

    Selección de Suministros Claves Basada en el Refugio Elegido

    En lugar de tener un conjunto fijo de suministros clave, estos se determinarán según el tipo de refugio seleccionado. Cada refugio tendrá sus propios requisitos esenciales para maximizar las probabilidades de supervivencia.

    • Refugio Subterráneo:
      • Descripción: Un refugio bajo tierra, protegido de los fuertes vientos, pero con acceso limitado y difícil de alcanzar. Este tipo de refugio necesita suministros que garanticen la disponibilidad de luz y agua.
      • Suministro Clave: Filtro de agua, Linterna, y Manta térmica.
    • Refugio en la Montaña:
      • Descripción: Un refugio elevado, lejos de los escombros y del agua, pero expuesto a vientos fuertes. En un refugio de montaña, el frío extremo es el principal enemigo.
      • Suministro Clave: Manta térmica, Encendedor, y Herramientas.
    • Refugio en el Bosque:
      • Descripción: Un refugio en un área arbolada, con buena cobertura natural, pero con riesgo de caída de árboles. Este refugio requiere suministros que aseguren protección contra la intemperie y que permitan la comunicación.
      • Suministro Clave: Cobija, Radio, y Botiquín básico.

    Fortalecimiento del Refugio:

    • Después de seleccionar un refugio, el juego ajustará los suministros clave necesarios en función del tipo de refugio.
    • El jugador deberá recolectar al menos uno de los suministros clave específicos de su refugio para fortalecerlo con éxito. Si se recolectan todos los suministros clave correspondientes, se garantiza una mayor seguridad del refugio.

    Evaluación Final:

    • Durante la evaluación final, el juego comprobará si el jugador recolectó los suministros clave específicos de su refugio. Si los recolectó, el refugio se considerará seguro y aumentarán las probabilidades de sobrevivir al Twister.



parte del código: 
# ACTIVIDAD GUIADA 13 - Aventura: Sobreviviendo al Twister
import random

refugios = ["Subterráneo", "en las Montañas", "en el Bosque"]
inventario_usuario = []
sumninistros_clave = ["Manta térmica", "Encendedor", "Comida enlatada",
                      "Botiquín básico", "Kit de primeros auxilios", "Linterna",
                      "Radio", "Filtro de agua", "Cobija", "Herramientas"]
furia_del_twister = random.randint(0, 9)
contador = 1
i = 0

# Paso 1 - Selección de Refugio
def seleccion_refugio():
   
    for i, refugio in enumerate(refugios, start=1):
        print(f"Opción {i}: {refugio}")    
    refugio_usuario = input("Elige un número de refugio ")

# Paso 2 - Recolectar suministros
def recolectar_suministros():
    global i
    global sumninistros_clave
    for sumi in sumninistros_clave:
        print(sumi)
    
    #while i<5:
        #sumi_ag =input("Ingrese un nuevo suministro ")
        #sumninistros_clave.append(sumi_ag)
        #i += 1
    #print(sumninistros_clave)
    #i = 0
    
    while len(inventario_usuario)<5:
       sumi_inv =input("Ingrese el nombre del suministro a ingresar en el inventario ")
       if sumi_inv in sumninistros_clave:
           inventario_usuario.append(sumi_inv)
     
       elif sumi_inv.lower() == "salir":
           break
       else:
           print(f"El sumninistro {sumi_inv} no está incluido en la lista de suministros y no se puede agregar a inventario")
    
    if len(inventario_usuario)== 5:
        print(f"La cantidad de elementos ingresados, es el máximo {len(inventario_usuario)}")
    else:
        print(f"La cantidad de elementos ingresados son {len(inventario_usuario)}")
    
    for sum in inventario_usuario:
        print(sum)
           
   
while True:
    print("\nMenú:")
    print("1. Selección de refugio")
    print("2. Recolectar suministros")
    print("3. ")
    print("4. Salir")
    opcion = input("Elige una opción: ")
        
    if opcion == "1":
        print("Selección de refugio")
        seleccion_refugio()
        
    elif opcion == "2":
        print("2. Recolectar suministros")
        recolectar_suministros()
        
    elif opcion == "4":
        print("Sobreviviste al Twister. ¡Hasta luego!")
        break 


Entradas populares de este blog