Dungeon Master to jedna z pierwszych gier fabularnych czasu rzeczywistego, pierwotnie wydana w 1987 roku na Atari ST. Wśród innych ekscytujących rzeczy na ten czas oferował dość wyrafinowany system zaklęć oparty na runach.
Twoim zadaniem dzisiaj jest napisanie programu lub funkcji, która ocenia liczbę punktów many wymaganych do rzucenia danego zaklęcia w Dungeon Master.
System „rzucania zaklęć” jest prawym górnym cyjanem na powyższym obrazku.
Czary, runy i many
Czary Mistrza Lochów składają się z 2 do 4 run, wybranych spośród następujących kategorii, w dokładnie takiej kolejności:
- Moc (obowiązkowe)
- Wpływ żywiołów (obowiązkowy)
- Formularz (opcjonalnie)
- Klasa / wyrównanie (opcjonalnie)
Oznacza to, że prawidłowe zaklęcia to:
- Moc + Wpływ Żywiołów
- Moc + Wpływ Żywiołów + Forma
- Moc + Wpływ Żywiołów + Forma + Klasa / Wyrównanie
Każda kategoria zawiera 6 run, a każda runa ma powiązany podstawowy koszt many:
=============================================================================
| 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 |
=============================================================================
Ocena kosztu many
Koszt many zaklęcia to suma kosztu many wszystkich run:
Koszt runy Mocy zawsze jest równy jej kosztowi podstawowemu (od 1 do 6).
W przypadku innych run obowiązuje następująca formuła:
gdzie moc jest kosztem podstawowym runy Mocy.
Przykłady
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
Wyjaśnienia i zasady
- Twój wkład będzie się składał z 2 do 4 łańcuchów oznaczających runy zaklęcia. Możesz wziąć je w dowolnym rozsądnym formacie, takim jak 4 różne parametry, tablica ciągów znaków (np.
['Lo', 'Ful']
) Lub tylko jeden ciąg znaków z wybranym separatorem jednoznakowym (np'Lo Ful'
.). Podaj wybrany format wejściowy w swojej odpowiedzi. - Runy mają gwarancję ważności.
- Kolejność kategorii musi być przestrzegana. Niewykorzystane kategorie mogą być brakujące lub zastąpione pewną wartością fałszowania.
- Możesz zaakceptować runy w dowolnym z następujących formatów: 1. Wielka litera, po której następuje mała litera (
'Ful'
) 2. Wszystkie małe litery ('ful'
) 3. Wszystkie wielkie litery ('FUL'
). Ale nie można mieszać różnych formatów. - Oczywiście nie dbamy o to, czy zaklęcie rzeczywiście ma jakiś wpływ na grę (bo ciekawe, przydatne zaklęcia są wymienione tutaj ).
- To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
- I pamiętaj: Lord Chaos cię obserwuje!
Przypadki testowe
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