ความสามารถพิเศษใน DSA


9

เพื่อนบางคนและฉันเคยเล่น DSA (RPG บนโต๊ะเยอรมันส่วนใหญ่เหมือนกับ D & D) ฉันสงสัยว่าโอกาสในการผ่านม้วนคืออะไรดังนั้นคุณจะต้องเขียนโค้ดเพื่อคำนวณ

ตัวละครของคุณถูกกำหนดโดยสถิติ (จาก 8 ถึง 14) และ (Talent) ค่าพรสวรรค์ (0 ถึง 21) สำหรับตอนนี้เราจะใช้การปีนเขาเป็นตัวอย่าง

การทดสอบความสามารถพิเศษ

ความสามารถพิเศษ (การปีนเขา) มีลักษณะเช่นนี้: (Courage-Dexterity-Strength) ทีวี: 7. ในการทดสอบตัวละครที่มีความสามารถคุณจะกลิ้งไปตามสถิติเหล่านี้ด้วยลูกเต๋า 20 หน้าและลองลงไปด้านล่างหรือเท่ากับสถิติถ้า คุณทำได้ดี ถ้าไม่คุณสามารถใช้คะแนนทีวีของคุณเพื่อลดการหมุนด้วยอัตราส่วน 1: 1

ตัวอย่าง

นักล่าที่มีความกล้าหาญ 12 ความชำนาญ 13 และกำลัง 14 กำลังพยายามปีนต้นไม้ทีวีของเขาคือ 7

เขาหมุน 3, ค่าต่ำกว่า 12 เพื่อให้เขาผ่านม้วนนั้น

จากนั้นเขาก็กลิ้ง 17, 17 คือ 4 มากกว่า 13, ดังนั้น 4 ทีวีจึงหมดไป 3 ครั้ง

สำหรับการหมุนรอบสุดท้ายคุณจะได้รับ 14 ให้ผ่านจุด

ม้วนทั้งหมดจะถูกส่งผ่านและนักล่าสัตว์สามารถปีนขึ้นไปบนต้นไม้มีทีวี 3 ตัวเหลืออยู่

อินพุต

4 ค่าในรูปแบบใด ๆ ที่คุณเลือกนำมาจากอินพุตมาตรฐานของภาษาของคุณ มันจะต้องอยู่ในลำดับนี้แม้ว่า

เช่น12 13 14 7หรือ12,13,14,7หรือเป็นอาร์เรย์ {12,13,14,7} หรือผสมกัน[12, 14, 8], 3

เอาท์พุต

โอกาสของการม้วนผ่าน

เช่น (สำหรับค่าด้านบน)0.803

12,14,8,3 = 0.322

11,11,12,11 = 0.840

สำหรับโบนัส: การขึ้นรูปอีกครั้งไม่ใช่ปัญหาที่นี่เอาท์พุทตามที่คุณต้องการ แต่ตามลำดับต่อไปนี้:

failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7 

เป็นต้นจนกระทั่งไม่มีทีวีเหลือ

12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273

12,14,8,3 = 0.678/0.056/0.051/0.047/0.168

ความท้าทายและกฎและโบนัส

  • คุณจะต้องหาโอกาสที่จะผ่านการม้วนให้แม่นยำ + - 0.5%

  • -20% ถ้าโปรแกรมของคุณให้โอกาสในการส่งผ่านnทีวีด้วย(ดูที่เอาต์พุต)

  • นี่คือ ดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ!


1
"4 ค่าในรูปแบบใด ๆ ที่คุณเลือก" รวมไว้ในลำดับอื่นหรือไม่
Martin Ender

1
หรืออะไรทำนองนั้น[12, 14, 8], 3?
Martin Ender

ฉันคิดว่าฉันมีคำสั่งซื้อรวมอยู่ในตอนนี้ อนุญาตให้อินพุตแบบผสมได้เช่นกัน
Eumel

คำตอบ:


2

Pyth - 21 20 19 ไบต์

บันทึกแล้ว 1 ไบต์ขอบคุณ @ThomasKwa

.Omgvzsg#0-VdQ^SyT3

Test Suite


Pyth นั้นดีมาก ... นี่เป็นคำถามประเภทของ APL และฉันมี 27 เท่านั้นใน APL
lirtosiast

ลำดับของอินพุตถูกสมมติว่าเป็นstat,stat,stat,TVฉันไม่ได้ระบุเฉพาะตอนนี้แม้ว่า อย่างไรก็ตามหากคุณสามารถปรับเปลี่ยนได้อย่างง่ายดายนั่นก็คงจะดี คุณสามารถอธิบายได้ไหม?
Eumel

@ Eumel แน่นอนว่าการเปลี่ยนลำดับไม่น่าจะเป็นปัญหาฉันใช้งานโทรศัพท์ตอนนี้ฉันจะทำเมื่อกลับถึงบ้าน
Maltysen

1

Dyalog APL ขนาด 28 ไบต์

{(+/÷⍴)⍵≥∊+/¨0⌈(⊂⍺)-⍨¨⍳3⍴20}

วิธีนี้เหมือนกับของ @ Maltysen เราไม่สามารถมั่นใจในความถูกต้องของ 0.5% ได้ถ้าเราวาดเพียงแค่ไม่กี่พันลูกเต๋าสุ่มดังนั้นเราจึงนำค่าเฉลี่ยของทุกม้วนที่เป็นไปได้ นี่ใช้สถิติสามตัวเป็นอาร์กิวเมนต์ด้านซ้ายและค่าความสามารถพิเศษทางด้านขวา

ลองที่นี่ !

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.