DSA'da yetenek atışları


9

Bazı arkadaşlar ve ben bazı DSA (D & D gibi çoğunlukla Alman masa üstü RPG) oynadı. Ruloları geçme şansının ne olduğunu merak ediyordum, bu yüzden hesaplamak için bazı kodlar yazmanız gerekecek.

Karakteriniz istatistikler (8 ila 14) ve (TV) Yetenek değerleri (0 ila 21) ile tanımlanır. Şimdilik tırmanmayı örnek olarak kullanacağız.

Yetenek testleri

Bir yetenek (tırmanma) şuna benzer: (Cesaret-Beceri-Güç) TV: 7. Bir yetenek üzerinde bir karakteri test etmek için 20 taraflı bir zarla bu istatistiklere yuvarlanır ve bunu iyi yaparsın. Değilse, ruloları 1: 1 oranında azaltmak için TV noktalarınızı kullanabilirsiniz.

Misal

Cesareti 12, el becerisi 13 ve gücü 14 olan bir avcı bir ağaca tırmanmaya çalışıyor, TV'si 7.

3 atar, değer 12'nin altındadır, bu yüzden o ruloyu geçti.

Daha sonra bir 17, 17, 13'ten 4'ü alır, böylece 4 TV 3 kaldı.

Son atış için 14 puan alırsınız.

Tüm toplar geçti ve avcı ağaca tırmanmayı başardı, 3 TV kaldı.

Giriş

Dilinizin standart girişinden alınan, seçtiğiniz herhangi bir formatta 4 değer. Yine de bu sırada olması gerekir.

Örneğin 12 13 14 7veya 12,13,14,7{12,13,14,7} dizisi olarak veya karışık[12, 14, 8], 3

Çıktı

Ruloların ne sıklıkta geçme şansı.

Örneğin (yukarıdaki değerler için)0.803

12,14,8,3 = 0.322

11,11,12,11 = 0.840

Bonus için: Yine biçimlendirme burada sorun değil, istediğiniz gibi ama aşağıdaki sırayla çıktı alın:

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

TV kalmayıncaya kadar devam edin.

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

Zorluk ve kurallar ve bonus

  • Girdiye ruloları% + - 0,5 hassasiyetle geçirme şansı verildiğini öğreneceksiniz.

  • Programınız nTV ile geçme şansını da verirse% -20 (çıkışa bakınız).

  • Bu , bayttaki en kısa kod kazanır!


1
"Seçtiğiniz herhangi bir formatta 4 değer" bunları farklı bir sırayla almayı içeriyor mu?
Martin Ender

1
Yoksa böyle bir şey [12, 14, 8], 3mi?
Martin Ender

Ben sipariş dahil olduğunu düşündüm, onun şimdi. Karışık girişlere de izin verilir.
Eumel

Yanıtlar:


2

Pyth - 21 20 19 bayt

@ThomasKwa sayesinde 1 bayt kaydedildi

.Omgvzsg#0-VdQ^SyT3

Test Takımı .


Pyth çok iyi ... Bu APL'nin soru tipi ve APL'de sadece 27 tane var.
lirtosiast

giriş sırasının stat,stat,stat,TVben sadece şimdi olsa belirtmek için olduğu ileri sürüldü . Ancak bunu kolayca değiştirebilirseniz bu iyi olurdu. Bir açıklama yapabilir misiniz?
Eumel

@ Eminim, siparişi değiştirmek sorun olmamalı, şu anda bir telefondayım, eve geldiğimde yapacağım.
Maltysen

1

Dyalog APL, 28 bayt

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

Bu yaklaşım @ Maltysen'inkiyle aynıdır. Biz olamaz emin bunun yerine tüm olası rulolar üzerinde ortalamasını almak bu yüzden sadece birkaç bin rastgele zar rulo çizerseniz% 0.5 doğruluk. Bu, soldaki argüman olarak üç istatistik ve sağdaki yetenek değerini alır.

Burada deneyin !

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.