Dungeon Master a été l’un des tout premiers jeux de rôle en temps réel, sorti en 1987 sur Atari ST. Entre autres choses excitantes pour le moment, il proposait un système de sorts plutôt sophistiqué basé sur les runes.
Votre tâche aujourd'hui est d'écrire un programme ou une fonction qui évalue le nombre de points de mana nécessaires pour lancer un sort donné dans Dungeon Master.
Le système de 'distribution de sorts' est la boîte cyan en haut à droite dans l'image ci-dessus.
Sorts, runes et mana
Les sorts de Maître de donjon sont composés de 2 à 4 runes, sélectionnées dans les catégories suivantes, dans cet ordre exact:
- Puissance (obligatoire)
- Influence élémentaire (obligatoire)
- Formulaire (optionnel)
- Classe / Alignement (optionnel)
Cela signifie que les périodes valides sont soit:
- Puissance + Influence élémentaire
- Puissance + Influence élémentaire + Forme
- Puissance + Influence élémentaire + Forme + Classe / Alignement
Chaque catégorie contient 6 runes et chaque rune a un coût en mana de base associé:
=============================================================================
| 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 |
=============================================================================
Évaluation du coût en mana
Le coût en mana du sort correspond à la somme du coût en mana de toutes les runes:
Le coût de la rune Power est toujours égal à son coût de base (de 1 à 6).
Pour les autres runes, la formule suivante s'applique:
où le pouvoir est le coût de base de la rune Power.
Exemples
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
Clarifications et règles
- Votre saisie consistera en 2 à 4 chaînes désignant les runes du sort. Vous pouvez les prendre dans n'importe quel format raisonnable, tels que 4 paramètres distincts, un tableau de chaînes (par exemple
['Lo', 'Ful']
) ou une seule chaîne avec un séparateur de caractère unique de votre choix (par exemple'Lo Ful'
). Veuillez spécifier le format de saisie sélectionné dans votre réponse. - Les runes sont garanties d'être valides.
- L'ordre des catégories doit être respecté. Les catégories non utilisées peuvent être manquantes ou remplacées par une valeur de fausseté.
- Vous pouvez accepter les runes dans l’un des formats suivants: 1. Une lettre majuscule suivie de minuscules (
'Ful'
) 2. Toutes les minuscules ('ful'
) 3. Toutes les majuscules ('FUL'
). Mais vous ne pouvez pas mélanger différents formats. - Bien évidemment, nous ne nous soucions pas de savoir si le sort a réellement un effet sur le jeu (pour les sorts curieux et utiles , ils sont listés ici .)
- C'est le code-golf , donc le code le plus court en octets gagne.
- Et rappelez-vous: Lord Chaos vous observe!
Cas de 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