Pular para o conteúdo
Bruno Dórea
Todos os posts

9 mins de leitura


A Questão Intrincada da Magia Preditiva

Desafios de Código SQUADIO - Intermediário II - 3/3


Python Data Analytics
Python Data Analytics

Descrição

No reino mágico onde cada feiticeiro possui uma afinidade elemental única, seu desafio é criar um modelo de machine learning para prever essa afinidade. Os feiticeiros podem pertencer a um dos quatro elementos mágicos: Fogo, Água, Terra ou Ar. A predição será baseada em cinco atributos mágicos: intensidade do feitiço, presença de componente raro, fase lunar, idade do feiticeiro e afinidade com animais mágicos.

Aqui estão os critérios mágicos para cada elemento:

  • Elemento Fogo:

    • Intensidade do feitiço maior ou igual a 5.
    • Fase lunar durante o feitiço é crescente.
    • Idade do feiticeiro é superior a 100 anos.
  • Elemento Água:

    • Intensidade do feitiço maior ou igual a 7.
    • Presença de componente raro.
    • Fase lunar durante o feitiço é cheia.
    • Idade do feiticeiro é igual ou inferior a 100 anos.
    • Afinidade com animais mágicos.
  • Elemento Terra:

    • Intensidade do feitiço maior ou igual a 7.
    • Presença de componente raro.
    • Fase lunar durante o feitiço é cheia.
    • Idade do feiticeiro é igual ou inferior a 100 anos.
    • Afinidade com animais mágicos.
  • Elemento Ar:

    • Caso não se encaixe nos critérios anteriores.

Entrada

Seu código deve receber as seguintes entradas do usuário:

  • Intensidade do feitiço (de 1 a 10): um número inteiro representando a força do feitiço.
  • Componente raro (sim ou não): uma string indicando se o feitiço contém um componente raro.
  • Fase lunar (cheia, crescente ou minguante): uma string indicando a fase lunar durante o lançamento do feitiço.
  • Idade do feiticeiro (em anos): um número inteiro representando a idade do feiticeiro.
  • Afinidade com animais mágicos (sim ou não): uma string indicando se o feiticeiro tem afinidade com animais mágicos.

Saída

O código deve produzir uma saída indicando a afinidade elemental prevista do feiticeiro com base nos atributos fornecidos.

Exemplos

A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.

EntradaSaída
6
sim
crescenteA afinidade elemental do feiticeiro é com o elemento Fogo!
110
sim
EntradaSaída
8
sim
cheiaA afinidade elemental do feiticeiro é com o elemento Água!
80
não
EntradaSaída
9
sim
cheiaA afinidade elemental do feiticeiro é com o elemento Terra!
80
sim

Resolução

def prever_afinidade_elemental(intensidade, componente_raro, fase_lunar, idade_feiticeiro, afinidade_animais):
    componente_raro = componente_raro.lower() == "sim"
    afinidade_animais = afinidade_animais.lower() == "sim"
 
    if intensidade >= 5 and fase_lunar == "crescente" and idade_feiticeiro > 100:
        return "A afinidade elemental do feiticeiro é com o elemento Fogo!"
    elif intensidade >= 7 and componente_raro and fase_lunar == "cheia":
        if idade_feiticeiro <= 100 and afinidade_animais:
            return "A afinidade elemental do feiticeiro é com o elemento Terra!"
        else:
            return "A afinidade elemental do feiticeiro é com o elemento Água!"
    else:
        return "A afinidade elemental do feiticeiro é com o elemento Ar!"
 
intensidade_feitico = int(input())
componente_raro_feitico = input()
fase_lunar_feitico = input()
idade_feiticeiro = int(input ())
afinidade_animais_feiticeiro = input()
resultado = prever_afinidade_elemental(intensidade_feitico, componente_raro_feitico, fase_lunar_feitico, idade_feiticeiro, afinidade_animais_feiticeiro)
 
print(resultado)

Para encontrar outras soluções, verifique aqui.

Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.