Saya ingin bermain Dungeons and Dragons, tapi saya tidak punya dadu! Tantangan Anda adalah melempar beberapa dadu D & D.
Spesifikasi format input dalam formulir Backus-Naur adalah:
<valid-input> ::= <opt-integer> "d" <integer> <opt-modifier>
<opt-integer> ::= | <integer>
<opt-modifier> ::= | "+" <integer>
<integer> ::= "0" | "1" | "2" | "3" | "4" | "5" |
"6" | "7" | "8" | "9" | <integer> <integer>
Bilangan bulat opsional sebelum d
adalah jumlah dadu untuk digulung; itu harus setidaknya 1
, dan default ke 1
jika tidak disediakan.
Bilangan bulat yang diperlukan segera setelah d
jumlah sisi yang dimiliki masing-masing die; setidaknya harus 1
. Sisi setiap dadu adalah bilangan bulat positif berurutan yang berbeda mulai dari 1
.
Pengubah opsional mungkin +0
, dan standarnya adalah +0
jika tidak ditentukan.
Misalnya, untuk input 2d10+5
, Anda menghasilkan dua angka acak dari 1 hingga 10 inklusif, tambahkan bersama-sama, dan tambahkan 5. Kemudian Anda akan menampilkan hasilnya.
Jika Anda menerima input tidak valid, seperti 2d
, d20+
, 0d4
, 2d5+1+2
, 2+2
, atau apa pun yang tidak sesuai format ini, Anda harus output " Invalid input
". Jika tidak, Anda harus mengeluarkan hanya satu bilangan bulat acak, yang dibobot menurut input. Misalnya, 3d6
harus menghasilkan lebih 10
dari 4
s .
Uji kasus
Input Minimum possible output Maximum possible output
d1 1 1
d6 1 6
d1+3 4 4
d20+3 4 23
2d1 2 2
2d6+2 4 14
d01 1 1
d01+0 1 1
01d01+01 2 2
3d20+10 13 70
d Invalid input
d0 Invalid input
d+0 Invalid input
d0+0 Invalid input
0d1 Invalid input
0d1+1 Invalid input
d1+ Invalid input
1d Invalid input
1d1+ Invalid input
1d+1 Invalid input
2d+2d Invalid input
d2+d2 Invalid input
d2+2+2 Invalid input
d2-1 Invalid input
-d2 Invalid input
-2d2 Invalid input
4*3 Invalid input
4*d2 Invalid input
Ini adalah kode-golf , jadi kode terpendek dalam byte akan menang!
n
dan p
sebagai opsional, tetapi input yang memilih untuk tidak memasukkannya ( d20+
) sebagai tidak valid.
+
tanda hanya akan ditambahkan jika pengubah p
disediakan.
1d4+1d6
untuk penyamun licik menyerang dengan belati) atau memiliki negatif p
(misalnya, 1d20-1
untuk pemeriksaan keterampilan tanpa peringkat / pelatihan dan pengubah kemampuan negatif).
2d8 + 1d6 + 4
? Anda akan memiliki waktu yang buruk
02d05+073
input yang valid?