ダンジョンマスターは、1987年にアタリSTでリリースされた最初のリアルタイムロールプレイングゲームの1つでした。当時のエキサイティングなものの中でも、ルーン文字に基づいたかなり洗練されたスペルシステムを提供していました。
今日のあなたの仕事は、ダンジョンマスターで特定の呪文を唱えるのに必要なマナポイントの数を評価するプログラムまたは関数を書くことです。
「スペルキャスト」システムは、上の図の右上のシアンのボックスです。
スペル、ルーン、マナ
ダンジョンマスタースペルは、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']
)、または選択した1文字の区切り文字を含む1つの文字列(例)など、任意の妥当な形式で使用できます'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