Dungeon Master是有史以来最早的实时角色扮演游戏之一,最初于1987年在Atari ST上发布。在当时其他令人兴奋的事情中,它提供了一个基于符文的相当复杂的咒语系统。
今天的任务是编写一个程序或函数,以评估在Dungeon Master中施放给定咒语所需的法力点数。
上图右上方的青色框是“拼写”系统。
法术,符文和法力
地下城主法术由2至4个符文组成,并按照以下顺序从以下类别中进行选择:
- 功率(强制性)
- 元素影响力(强制性)
- 表格(可选)
- 类/对齐(可选)
这意味着有效的咒语是:
- 力量+元素影响
- 力量+元素影响力+形式
- 力量+元素影响力+形式+阶级/阵线
每个类别包含6个符文,每个符文都有一个相关的基础法力消耗:
=============================================================================
| 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 |
=============================================================================
评估法力消耗
该法术的法力消耗是所有符文的法力消耗总和:
例子
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
澄清和规则
- 您的输入将包含2至4个字符串,用于指定该咒语。您可以采用任何合理的格式,例如4个不同的参数,一个字符串数组(例如
['Lo', 'Ful']
)或仅一个带有您选择的单字符分隔符的字符串(例如'Lo Ful'
)。请在答案中指定所选的输入格式。 - 符文保证有效。
- 必须遵守类别的顺序。未使用的类别可能会丢失或被某些虚假的值替换。
- 您可以接受以下任何一种格式的符文:1.大写字母后跟小写字母(
'Ful'
)2.所有小写字母('ful'
)3.所有大写字母('FUL'
)。但你不能混用不同的格式。 - 很明显,我们不在乎该咒语是否确实在游戏中具有某种效果(因为好奇的有用的咒语在此列出)。
- 这是code-golf,因此以字节为单位的最短代码获胜。
- 记住:混沌大人在看着你!
测试用例
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