- Por Emmanuel Valverde
- ·
- Publicado 28-feb-2024 0:00:00
Morning routine
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
Durance ha encontrado un libro de magia en una de sus aventuras y ha decidido aprender a encantar sus armas. Debido a la naturaleza inestable de la magia, no está seguro de qué tipo de cosas mágicas sucederán, ¡incluso podría deshacer hechizos anteriores! (Esto ocurre cada 1/10 veces). Intentemos ayudarle.
Crea una aplicación que le permita a Durance encantar su arma.
Para esta versión de la kata, sólo se permite un encanto a la vez. Podemos volver a lanzar un hechizo existente, pero hay una probabilidad de 1/10 de que perdamos todos los hechizos actuales del arma.
Ejemplo:
Daga del Nooblet
5 - 10 daño de ataque
1.2 velocidad de ataque
Después de hechizarlo, Durance lanzó el encantamiento 'Fuego'.
Daga Infernal del Nooblet
5 - 10 daño de ataque
1.2 velocidad de ataque
+5 daño del fuego
Al no estar satisfecho, la hechizo de nuevo y esta vez consiguió el encantamiento 'Agilidad'.
Daga Rápida del Nooblet
5 - 10 daño de ataque
1.2 velocidad de ataque
+5 agilidad
Durance se empezó a sentir muy seguro de sí mismo, pensando que podría conseguir algo mejor, y lo intentó de nuevo. Lamentablemente, ¡deshizo sus hechizos!
Daga del Nooblet
5 - 10 daño de ataque
1.2 velocidad de ataque
Un hechizo le confiere diferentes atributos a un arma. Para esta kata, podemos elegir entre los siguientes:
{
"ice": {
"prefix": "Icy",
"attribute": "+5 ice damage"
},
"fire": {
"prefix": "Inferno",
"attribute": "+5 fire damage"
},
"lifesteal": {
"prefix": "Vampire",
"attribute": "+5 lifesteal"
},
"agility": {
"prefix": "Quick",
"attribute": "+5 agility"
},
"strength": {
"prefix": "Angry",
"attribute": "+5 strength"
}
}
HDurance{
Weapon weapon;
MagicBook magicBook;
public void enchant(){
// Implement here...
}
public String describeWeapon(){
// Implement here...
}
}
public interface Weapon{
String stats();
}
Ahora Durance puede llevar consigo más armas y cada una de ellas puede tener hasta 3 hechizos únicos. En esta versión, Durance también se preocupa por infligir el mayor daño posible, por lo que el DPS (daño por segundo) también deberá mostrarse.
Teniendo en cuenta el atributo de agilidad, lo convertimos en un aumento de la velocidad de ataque igual a: attack speed + agility points / 10
El DPS se calcula así: ((Min Weapon Damage + Max Weapon Damage) / 2) / Weapon Speed
Como soy una persona olvidadiza, necesito un método que me ayude a recordar mi rutina matutina. Por eso he creado un programa que, según la hora del..
Resumen Esta kata es bastante avanzada, por lo que recomendamos que intentes resolverla una vez que hayas practicado TDD con otras katas más fáciles.
Introducción Con el propósito de practicar TDD, esta es una de las katas más avanzadas que puedes hacer. A estas alturas ya deberías dominar las..
Suscríbete a nuestra newsletter para que podamos hacerte llegar recomendaciones de expertos y casos prácticos inspiradores