Dungeon Master fue uno de los primeros juegos de rol en tiempo real, lanzado originalmente en 1987 en el Atari ST. Entre otras cosas interesantes para la época, ofrecía un sistema de hechizos bastante sofisticado basado en runas.
Tu tarea hoy es escribir un programa o función que evalúe la cantidad de puntos de maná necesarios para lanzar un hechizo dado en Dungeon Master.
El sistema de 'lanzamiento de hechizos' es el cuadro cian superior derecho en la imagen de arriba.
Hechizos, runas y maná
Los hechizos de Dungeon Master están compuestos de 2 a 4 runas, elegidas entre las siguientes categorías, en este orden exacto:
- Poder (obligatorio)
- Influencia elemental (obligatoria)
- Formulario (opcional)
- Clase / Alineamiento (opcional)
Significa que los hechizos válidos son:
- Poder + Influencia Elemental
- Poder + Influencia Elemental + Forma
- Poder + Influencia Elemental + Forma + Clase / Alineamiento
Cada categoría contiene 6 runas, y cada runa tiene un costo de maná base asociado:
=============================================================================
| Power | Rune | Lo | Um | On | Ee | Pal | Mon |
| +-----------+------+------+------+------+------+------+
| | Base cost | 1 | 2 | 3 | 4 | 5 | 6 |
=============================================================================
| Elemental Influence | Rune | Ya | Vi | Oh | Ful | Des | Zo |
| +-----------+------+------+------+------+------+------+
| | Base cost | 2 | 3 | 4 | 5 | 6 | 7 |
=============================================================================
| Form | Rune | Ven | Ew | Kath | Ir | Bro | Gor |
| +-----------+------+------+------+------+------+------+
| | Base cost | 4 | 5 | 6 | 7 | 7 | 9 |
=============================================================================
| Class / Alignment | Rune | Ku | Ros | Dain | Neta | Ra | Sar |
| +-----------+------+------+------+------+------+------+
| | Base cost | 2 | 2 | 3 | 4 | 6 | 7 |
=============================================================================
Evaluar el costo de maná
El costo de maná del hechizo es la suma del costo de maná de todas las runas:
El costo de la runa Power siempre es igual a su costo base (de 1 a 6).
Para las otras runas, se aplica la siguiente fórmula:
donde el poder es el costo base de la runa Power.
Ejemplos
Spell: Lo Ful
Cost : 1 + floor((1 + 1) * 5 / 2) = 1 + 5 = 6
Spell: Um Ful
Cost : 2 + floor((2 + 1) * 5 / 2) = 2 + 7 = 9
Spell: Pal Vi Bro
Cost : 5 + floor((5 + 1) * 3 / 2) + floor((5 + 1) * 7 / 2) = 5 + 9 + 21 = 35
Aclaraciones y reglas.
- Tu entrada consistirá en 2 a 4 cadenas que designan las runas del hechizo. Puede tomarlos en cualquier formato razonable, como 4 parámetros distintos, una matriz de cadenas (por ejemplo
['Lo', 'Ful']
), o solo una cadena con un separador de un solo carácter de su elección (por ejemplo'Lo Ful'
). Especifique el formato de entrada seleccionado en su respuesta. - Las runas están garantizadas para ser válidas.
- Se debe respetar el orden de las categorías. Las categorías no utilizadas pueden faltar o reemplazarse con algún valor falso.
- Puede aceptar las runas en cualquiera de estos formatos: 1. Una letra mayúscula seguida de minúscula (
'Ful'
) 2. Todas minúsculas ('ful'
) 3. Todas mayúsculas ('FUL'
). Pero no puedes mezclar diferentes formatos. - Obviamente, no nos importa saber si el hechizo realmente tiene algún efecto en el juego (para los hechizos curiosos y útiles se enumeran aquí ).
- Este es el código de golf , por lo que gana el código más corto en bytes.
- Y recuerda: ¡ Lord Chaos te está mirando!
Casos de prueba
Spell | Output
---------------+-------
Lo Ful | 6
Um Ful | 9
On Ya | 7
Lo Zo Ven | 12
Pal Vi Bro | 35
Ee Ya Bro Ros | 31
On Ful Bro Ku | 31
Lo Zo Kath Ra | 20
On Oh Ew Sar | 35
Ee Oh Gor Dain | 43
Mon Zo Ir Neta | 68
Mon Des Ir Sar | 75