Dungeon Master è stato uno dei primi giochi di ruolo in tempo reale, originariamente pubblicato nel 1987 su Atari ST. Tra le altre cose interessanti per l'epoca, offriva un sistema di incantesimi piuttosto sofisticato basato sulle rune.
Il tuo compito oggi è scrivere un programma o una funzione che valuti il numero di punti Mana richiesti per lanciare un determinato incantesimo in Dungeon Master.
Il sistema "incantesimo" è la casella ciano in alto a destra nella figura sopra.
Incantesimi, rune e mana
Gli incantesimi Dungeon Master sono composti da 2 a 4 rune, scelte tra le seguenti categorie, in questo preciso ordine:
- Potenza (obbligatoria)
- Influenza elementale (obbligatoria)
- Modulo (facoltativo)
- Classe / Allineamento (opzionale)
Significa che gli incantesimi validi sono:
- Potenza + Influenza elementale
- Potenza + Influenza elementale + Forma
- Potenza + Influenza elementale + Forma + Classe / Allineamento
Ogni categoria contiene 6 rune e ogni runa ha un costo di mana di base associato:
=============================================================================
| 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 |
=============================================================================
Valutazione del costo in mana
Il costo in mana dell'incantesimo è la somma del costo in mana di tutte le rune:
Il costo della runa di potenza è sempre uguale al suo costo base (da 1 a 6).
Per le altre rune, si applica la seguente formula:
dove potere è il costo base della runa di potere.
Esempi
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
Chiarimenti e regole
- Il tuo input sarà composto da 2 a 4 stringhe che designano le rune dell'incantesimo. Puoi prenderli in qualsiasi formato ragionevole, ad esempio 4 parametri distinti, una matrice di stringhe (ad esempio
['Lo', 'Ful']
) o solo una stringa con un separatore a carattere singolo di tua scelta (ad esempio'Lo Ful'
). Si prega di specificare il formato di input selezionato nella risposta. - Le rune sono garantite per essere valide.
- L'ordine delle categorie deve essere rispettato. Le categorie non utilizzate possono essere mancanti o sostituite con un valore errato.
- Puoi accettare le rune in uno di questi formati: 1. Una lettera maiuscola seguita da lettere minuscole (
'Ful'
) 2. Tutte le lettere minuscole ('ful'
) 3. Tutte le lettere maiuscole ('FUL'
). Ma non puoi mescolare diversi formati. - Ovviamente, non ci interessa sapere se l'incantesimo ha effettivamente qualche effetto nel gioco (per gli incantesimi curiosi e utili sono elencati qui .)
- Questo è code-golf , quindi vince il codice più breve in byte.
- E ricorda: Lord Chaos ti sta guardando!
Casi test
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