Calculando o Dano de Armas Laser

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como calcular os valores de dano de duas armas laser de alto desempenho desenvolvidas pelo instituto de pesquisa de armas do Império Galáctico. O laboratório de equipamentos de armas é responsável por testar os valores das armas, e você os ajudará implementando o processo de cálculo de dano.

$ python calculate_weapon_damage.py
[3, 2]

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como configurar o ambiente do projeto e criar os arquivos necessários
  • Como implementar a função calculate_weapon_damage() para calcular os valores de dano das duas armas laser
  • Como testar a função calculate_weapon_damage() com os dados de exemplo fornecidos

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender a declaração do problema e os requisitos para o cálculo de dano das armas laser
  • Implementar uma função para resolver um sistema de equações lineares e calcular os valores de dano das armas laser
  • Testar a função implementada com diferentes dados de entrada para garantir que funcione corretamente
  • Aplicar suas habilidades de resolução de problemas e programação a um cenário do mundo real

Configurar o Ambiente do Projeto

Nesta etapa, você configurará o ambiente do projeto e modificará os arquivos necessários para o projeto.

  1. Abra o arquivo calculate_weapon_damage.py em um editor de texto.
  2. No topo do arquivo, adicione a seguinte instrução de importação:
from typing import List

Isso permitirá que você use a anotação de tipo List em seu código.

✨ Verificar Solução e Praticar

Implementar a Função calculate_weapon_damage()

Nesta etapa, você implementará a função calculate_weapon_damage() para calcular os valores de dano das duas armas laser.

  1. Dentro do arquivo calculate_weapon_damage.py, defina a função calculate_weapon_damage() com a seguinte assinatura:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
    ## Seu código aqui
    pass
  1. Implemente a lógica para calcular os valores de dano da Arma A e da Arma B. Você pode usar as seguintes etapas como guia:

    • Verifique se as matrizes de entrada test1 e test2 têm o comprimento correto (3 elementos cada). Caso contrário, retorne uma lista vazia [].
    • Desempacote os valores das matrizes de entrada em variáveis a1, b1, total1 e a2, b2, total2.
    • Resolva o sistema de equações lineares para encontrar os valores de dano x (para a Arma A) e y (para a Arma B). Você pode usar as seguintes equações:
    a1 * x + b1 * y = total1
    a2 * x + b2 * y = total2
    • Converta os valores calculados de x e y em inteiros e retorne-os como uma lista [x, y].
    • Se houver um ZeroDivisionError ao resolver as equações, retorne uma lista vazia [].

    O código é o seguinte:

     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. Adicione o seguinte código no final do arquivo para testar a função calculate_weapon_damage():

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

Isso imprimirá os valores de dano calculados quando você executar o script.

✨ Verificar Solução e Praticar

Testar a Função calculate_weapon_damage()

Nesta etapa, você testará a função calculate_weapon_damage() com os dados de exemplo fornecidos.

  1. Salve o arquivo calculate_weapon_damage.py.
  2. Abra um terminal e navegue até o diretório /home/labex/project.
  3. Execute o script calculate_weapon_damage.py:
python calculate_weapon_damage.py

Você deve ver a saída [3, 2], que é o resultado esperado para os dados de exemplo fornecidos.

  1. Tente testar a função com outros dados de entrada para garantir que ela funcione corretamente. Por exemplo, você pode tentar passar [4, 5, 22] e [3, 2, 14] para ver se a função retorna uma lista vazia [] devido à entrada inválida.

Parabéns! Você implementou com sucesso a função calculate_weapon_damage() para calcular os valores de dano das duas armas laser.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.