O Dungeon Master foi um dos primeiros RPGs em tempo real, lançado originalmente em 1987 no Atari ST. Entre outras coisas interessantes para a época, ele ofereceu um sistema de feitiços bastante sofisticado, baseado em runas.
Sua tarefa hoje é escrever um programa ou função que avalie o número de pontos de Mana necessários para lançar um determinado feitiço no Dungeon Master.
O sistema 'spell cast' é a caixa ciana superior direita na figura acima.
Feitiços, runas e Mana
As magias do Dungeon Master são compostas por 2 a 4 runas, escolhidas entre as seguintes categorias, nesta ordem exata:
- Potência (obrigatória)
- Influência Elementar (obrigatório)
- Formulário (opcional)
- Classe / Alinhamento (opcional)
Isso significa que feitiços válidos são:
- Poder + Influência Elementar
- Poder + Influência Elementar + Forma
- Poder + Influência Elementar + Forma + Classe / Alinhamento
Cada categoria contém 6 runas e cada runa tem um custo de Mana base associado:
=============================================================================
| 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 |
=============================================================================
Avaliando o custo de Mana
O custo de Mana do feitiço é a soma do custo de Mana de todas as runas:
O custo da runa Power sempre é igual ao custo base (de 1 a 6).
Para as outras runas, a seguinte fórmula se aplica:
onde energia é o custo base da runa de energia.
Exemplos
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
Esclarecimentos e regras
- Sua entrada será composta de 2 a 4 cordas, designando as runas do feitiço. Você pode levá-los em qualquer formato razoável, como 4 parâmetros distintos, uma matriz de strings (por exemplo
['Lo', 'Ful']
) ou apenas uma string com um separador de caractere único de sua escolha (por exemplo'Lo Ful'
). Especifique o formato de entrada selecionado em sua resposta. - As runas são garantidas como válidas.
- A ordem das categorias deve ser respeitada. As categorias não usadas podem estar ausentes ou substituídas por algum valor falso.
- Você pode aceitar as runas em qualquer um destes formatos: 1. Uma letra maiúscula seguida por minúscula (
'Ful'
) 2. Todas minúsculas ('ful'
) 3. Todas maiúsculas ('FUL'
). Mas você não pode misturar formatos diferentes. - Obviamente, não queremos saber se o feitiço realmente tem algum efeito no jogo (pois os feitiços úteis e curiosos estão listados aqui ).
- Isso é código-golfe , então o código mais curto em bytes vence.
- E lembre-se: Lord Chaos está observando você!
Casos de teste
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