Dungeon Master adalah salah satu game role-time pertama yang pernah dimainkan, awalnya dirilis pada tahun 1987 di Atari ST. Di antara hal-hal menarik lainnya untuk saat ini, ia menawarkan sistem mantra yang agak canggih berdasarkan rune.
Tugas Anda hari ini adalah menulis program atau fungsi yang mengevaluasi jumlah poin Mana yang diperlukan untuk melemparkan mantra yang diberikan dalam Dungeon Master.
Sistem 'spell cast' adalah kotak cyan kanan atas pada gambar di atas.
Mantra, rune, dan Mana
Mantra Master Penjara Bawah Tanah terdiri dari 2 hingga 4 rune, dipilih di antara kategori berikut, dalam urutan yang tepat ini:
- Kekuasaan (wajib)
- Elemental Influence (wajib)
- Formulir (opsional)
- Kelas / Alignment (opsional)
Itu berarti mantra yang valid adalah:
- Power + Elemental Pengaruh
- Kekuatan + Pengaruh Elemen + Bentuk
- Kekuatan + Pengaruh Elemental + Bentuk + Kelas / Alignment
Setiap kategori berisi 6 rune, dan setiap rune memiliki biaya Mana dasar terkait:
=============================================================================
| 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 |
=============================================================================
Mengevaluasi biaya Mana
Biaya Mana dari mantra adalah jumlah dari biaya Mana semua rune:
Biaya Rune daya selalu sama dengan biaya dasarnya (dari 1 hingga 6).
Untuk rune lainnya, rumus berikut ini berlaku:
di mana daya adalah biaya dasar Rune daya.
Contohnya
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
Klarifikasi dan aturan
- Input Anda akan terdiri dari 2 hingga 4 string yang menunjuk rune mantra. Anda dapat mengambilnya dalam format apa pun yang wajar, seperti 4 parameter berbeda, array string (mis.
['Lo', 'Ful']
), Atau hanya satu string dengan pemisah satu karakter pilihan Anda (mis'Lo Ful'
.). Silakan tentukan format input yang dipilih dalam jawaban Anda. - Tanda dijamin valid.
- Urutan kategori harus dihormati. Kategori yang tidak digunakan dapat hilang atau diganti dengan nilai falsy.
- Anda dapat menerima rune dalam format berikut: 1. Huruf kapital diikuti dengan huruf kecil (
'Ful'
) 2. Semua huruf kecil ('ful'
) 3. Semua huruf besar ('FUL'
). Tetapi Anda tidak dapat mencampur format yang berbeda. - Jelas sekali, kami tidak peduli untuk mengetahui apakah mantra itu benar-benar memiliki efek dalam permainan (untuk mantra yang ingin tahu dan berguna tercantum di sini .)
- Ini adalah kode-golf , jadi kode terpendek dalam byte menang.
- Dan ingat: Lord Chaos memperhatikanmu!
Uji kasus
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