Beberapa teman dan saya telah memainkan beberapa DSA (RPG tabletop terutama Jerman seperti D & D). Saya bertanya-tanya apa peluang melewati gulungan, jadi Anda harus menulis beberapa kode untuk menghitungnya.
Karakter Anda ditentukan oleh statistik (dari 8 hingga 14) dan nilai Talent (TV) (0 hingga 21). Untuk saat ini kita akan menggunakan pendakian sebagai contoh.
Tes bakat
Bakat (panjat) terlihat seperti ini: (Keberanian-Kecekatan-Kekuatan) TV: 7. Untuk menguji karakter pada bakat Anda menggulirkan statistik ini dengan dadu 20 sisi dan mencoba untuk mendapatkan di bawah atau sama dengan stat, jika kamu melakukannya dengan baik. Jika tidak, Anda dapat menggunakan titik TV Anda untuk mengurangi gulungan dengan rasio 1: 1.
Contoh
Seorang pemburu dengan keberanian 12, ketangkasan 13 dan kekuatan 14 sedang mencoba memanjat pohon, TV-nya 7.
Ia menggulung 3, nilainya di bawah 12 sehingga ia melewati gulungan itu.
Lalu ia memutar 17, 17 adalah 4 lebih dari 13, sehingga 4 TV terbiasa dengan 3 yang tersisa.
Untuk roll terakhir, Anda mendapat 14, posisi berlalu.
Semua gulungan dilewatkan dan pemburu berhasil memanjat pohon, 3 TV tersisa.
Memasukkan
4 nilai dalam format apa pun yang Anda pilih, diambil dari input standar bahasa Anda. Itu harus dalam urutan ini.
Misalnya 12 13 14 7
atau 12,13,14,7
atau sebagai array {12,13,14,7} atau dicampur[12, 14, 8], 3
Keluaran
Kesempatan seberapa sering gulungan berlalu.
Misalnya (untuk nilai di atas)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
Untuk bonus: Sekali lagi memformat bukan masalah di sini, output sesuai keinginan Anda tetapi dengan urutan sebagai berikut:
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
dan seterusnya sampai tidak ada TV yang tersisa.
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
Tantangan dan aturan dan bonus
Anda akan menemukan diberi input kesempatan untuk lulus gulungan ke + - 0,5% akurasi.
-20% jika program Anda juga menampilkan peluang untuk lulus dengan
n
TV (lihat hasil).Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
[12, 14, 8], 3
?Jawaban:
Pyth -
212019 byteDisimpan 1 byte berkat @ThomasKwa
Test Suite .
sumber
stat,stat,stat,TV
saya lakukan hanya menentukan itu sekarang. Namun jika Anda dapat memodifikasi dengan mudah itu akan menyenangkan. Bisakah Anda memberikan penjelasan?Dyalog APL, 28 byte
Pendekatan ini sama dengan @ Maltysen. Kami tidak dapat memastikan keakuratan 0,5% jika kami hanya menggambar beberapa ribu gulungan dadu acak, jadi kami mengambil rata-rata dari semua gulungan yang mungkin. Ini mengambil tiga statistik sebagai argumen kiri, dan nilai bakat di sebelah kanan.
Coba di sini !
sumber