Dungeon Masterเป็นเกมเล่นตามบทบาทแบบเรียลไทม์เกมแรกที่เปิดตัวครั้งแรกในปี 1987 ใน Atari ST ในบรรดาสิ่งที่น่าตื่นเต้นอื่น ๆ ในเวลานั้นมันมีระบบคาถาที่ค่อนข้างซับซ้อนบนพื้นฐานของรูน
งานของคุณในวันนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่ประเมินจำนวนคะแนนมานาที่ต้องใช้ในการร่ายคาถาที่กำหนดให้ใน Dungeon Master
ระบบ 'คาถาร่าย' เป็นกล่องสีฟ้าด้านบนขวาในภาพด้านบน
คาถารูนและมานา
คาถา 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 |
=============================================================================
การประเมินราคามานะ
คาถาของมานาคือผลรวมของราคามานาของรูนทั้งหมด:
ค่าใช้จ่ายของ Power rune เท่ากับต้นทุนพื้นฐานเสมอ (จาก 1 ถึง 6)
สำหรับอักษรรูนอื่น ๆ จะใช้สูตรต่อไปนี้:
โดยที่powerคือต้นทุนพื้นฐานของ Power rune
ตัวอย่าง
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'
) แต่คุณไม่สามารถผสมรูปแบบต่าง ๆ ได้ - เห็นได้ชัดว่าเราไม่สนใจที่จะรู้ว่าคาถานั้นมีผลกระทบในเกมหรือไม่ (สำหรับคาถาที่มีประโยชน์และมีการระบุไว้ที่นี่ )
- นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ
- และจำไว้ว่าLord Chaosกำลังเฝ้าดูคุณอยู่!
กรณีทดสอบ
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