Cálculo del Daño de Armas Láser

PythonBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderás a calcular los valores de daño de dos armas láser de alto rendimiento desarrolladas por el instituto de investigación de armas del Imperio Galáctico. El laboratorio de equipo de armas se encarga de probar los valores de las armas, y tú los ayudarás implementando el proceso de cálculo de daño.

$ python calculate_weapon_damage.py
[3, 2]

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo configurar el entorno del proyecto y crear los archivos necesarios
  • Cómo implementar la función calculate_weapon_damage() para calcular los valores de daño de las dos armas láser
  • Cómo probar la función calculate_weapon_damage() con los datos de ejemplo proporcionados

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender el enunciado del problema y los requisitos para el cálculo de daño de armas láser
  • Implementar una función para resolver un sistema de ecuaciones lineales y calcular los valores de daño de las armas láser
  • Probar la función implementada con diferentes datos de entrada para asegurarte de que funcione correctamente
  • Aplicar tus habilidades de resolución de problemas y programación a un escenario del mundo real

Configurar el Entorno del Proyecto

En este paso, configurarás el entorno del proyecto y modificarás los archivos necesarios para el proyecto.

  1. Abra el archivo calculate_weapon_damage.py en un editor de texto.
  2. En la parte superior del archivo, agregue la siguiente declaración de importación:
from typing import List

Esto te permitirá usar la anotación de tipo List en tu código.

✨ Revisar Solución y Practicar

Implementar la función calculate_weapon_damage()

En este paso, implementarás la función calculate_weapon_damage() para calcular los valores de daño de las dos armas láser.

  1. Dentro del archivo calculate_weapon_damage.py, defina la función calculate_weapon_damage() con la siguiente firma:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
    ## Tu código aquí
    pass
  1. Implemente la lógica para calcular los valores de daño de Arma A y Arma B. Puedes usar los siguientes pasos como guía:

    • Verifique si las matrices de entrada test1 y test2 tienen la longitud correcta (3 elementos cada una). Si no es así, devuelva una lista vacía [].
    • Desempaquete los valores de las matrices de entrada en variables a1, b1, total1 y a2, b2, total2.
    • Resuelva el sistema de ecuaciones lineales para encontrar los valores de daño x (para Arma A) y y (para Arma B). Puedes usar las siguientes ecuaciones:
    a1 * x + b1 * y = total1
    a2 * x + b2 * y = total2
    • Convierta los valores calculados de x e y a enteros y devuélvalos como una lista [x, y].
    • Si hay un ZeroDivisionError al resolver las ecuaciones, devuelva una lista vacía [].

    El código es el siguiente:

     def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
         if len(test1)!= 3 or len(test2)!= 3:
             return []
    
         a1, b1, total1 = test1
         a2, b2, total2 = test2
    
         ## a1 * x + b1 * y = total1
         ## a2 * x + b2 * y = total2
         try:
             y = (total1 * a2 - total2 * a1) / (b1 * a2 - b2 * a1)
             x = (total1 - b1 * y) / a1
         except ZeroDivisionError:
             return []
    
         return [int(x), int(y)]
  2. Agregue el siguiente código al final del archivo para probar la función calculate_weapon_damage():

if __name__ == "__main__":
    print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))

Esto imprimirá los valores de daño calculados cuando ejecutes el script.

✨ Revisar Solución y Practicar

Probar la función calculate_weapon_damage()

En este paso, probarás la función calculate_weapon_damage() con los datos de ejemplo proporcionados.

  1. Guarde el archivo calculate_weapon_damage.py.
  2. Abra una terminal y navegue hasta el directorio /home/labex/project.
  3. Ejecute el script calculate_weapon_damage.py:
python calculate_weapon_damage.py

Deberías ver la salida [3, 2], que es el resultado esperado para los datos de ejemplo dados.

  1. Intente probar la función con otros datos de entrada para asegurarse de que funcione correctamente. Por ejemplo, puedes intentar pasar [4, 5, 22] y [3, 2, 14] para ver si la función devuelve una lista vacía [] debido a la entrada no válida.

¡Felicitaciones! Has implementado con éxito la función calculate_weapon_damage() para calcular los valores de daño de las dos armas láser.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.