Concurso de efectividades especiales de Pokémon
Se te proporcionan datos que contienen información sobre los primeros 100 Pokémon, así como relaciones especiales de efectividad. Usa estos datos para definir una función que reciba dos números de Pokémon y calcule qué Pokémon gana según sus tipos.
¿Cómo se calcula?
- Dados dos Pokémon, por ejemplo, el #3 (Venusaur) y el #6 (Charizard), usa los datos proporcionados para obtener sus tipos respectivos—(
grass,poison), (fire,flying). - Comenzaremos con Venusaur. Su primer tipo es
grass. Para cada uno de los tipos del oponente de Venusaur, usa los datos para obtener la efectividad degrass. El tipo grass tiene una efectividad de 0.5x (no muy efectiva) contrafireyflying. Multiplica estos valores:0.5 * 0.5 = 0.25. Por lo tanto, 'grass' tiene una efectividad de0.25contra Charizard. Repite esto con el segundo tipo de Venusaur,poison, y Venusaur obtendrá dos puntuaciones para sus dos tipos: (0.25,1.0). Calcula el promedio para obtener la puntuación final de Venusaur:0.625. Cuando un Pokémon solo tiene un tipo, solo tendrá una puntuación y no es necesario calcular un promedio. - Cuando hayas hecho esto para ambos Pokémon, terminarás con dos puntuaciones—una para cada Pokémon. Devuelve el número del Pokémon con la puntuación más alta o devuelve
-1en caso de empate.
Ejemplos
pk_special_winner(33, 28) ➞ 28
pk_special_winner(77, 52) ➞ -1
pk_special_winner(25, 44) ➞ 44
pk_special_winner(57, 51) ➞ -1
pk_special_winner(98, 34) ➞ 98Notas
- Un tipo se duplica cuando es muy efectivo y se reduce a la mitad cuando no es muy efectivo. En combinaciones, como
firecontra un Pokémon de tipobugygrass, las puntuaciones de efectividad se multiplican. Por lo tanto,firesería cuatro veces más efectivo contra un oponente así. Consulta esto para obtener más información.- Ten en cuenta que cuando un Pokémon tiene dos tipos, tendrá dos puntuaciones de efectividad y esta función requiere calcular su promedio. No confundas las multiplicaciones con los promedios.
Gracias a los proveedores de los datos:
Desafío adicional
¿Qué Pokémon vence a la mayoría de sus oponentes en este conjunto de datos? Consulta mi respuesta en los comentarios.