Zindanlar ve Ejderhalar oynamak istiyorum, ama zarım yok! Senin meydan okuma bazı D & D zar atmak için.
Backus-Naur formundaki girdi biçimi belirtimi :
<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>
'Den önceki isteğe bağlı tam d
sayı, döndürülecek zar sayısıdır; en azından olmalı 1
ve sağlanmazsa varsayılan olarak 1
ayarlanmalıdır.
Hemen ardından gereken tamsayı d
her kalıbın sahip olduğu kenar sayısıdır; en azından olmalı 1
. Her kalıbın yanları, başlangıçta başlayan ardışık pozitif tamsayılardır 1
.
İsteğe bağlı değiştirici olabilir +0
ve +0
belirtilmezse varsayılan olarak ayarlanır.
Örneğin, giriş için 2d10+5
, 1'den 10'a dahil olmak üzere iki rastgele sayı üretir, bunları toplar ve 5 eklersiniz. Sonra sonucu çıkarırsınız.
Eğer geçersiz giriş gibi alırsanız 2d
, d20+
, 0d4
, 2d5+1+2
, 2+2
, siz "çıktı gerekir bu biçimi uymuyor başka, ya da bir şey Invalid input
". Aksi takdirde, girişe göre ağırlıklı tek bir rastgele tamsayı çıkarmalısınız. Örneğin, 3d6
daha fazla üretmelidir 10
daha s 4
s .
Test senaryoları
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
Bu kod golf , bu yüzden bayt içindeki en kısa kod kazanacak!
n
ve p
isteğe bağlı olarak tanımlanır , ancak bunları ( d20+
) geçersiz olarak eklememeyi seçen girdi .
+
yalnızca değiştirici p
sağlandığında eklenmesi gerektiğini düşünüyorum .
1d4+1d6
bir hançere saldıran bir Rogue sinsi için) veya negatif p
(örneğin, 1d20-1
rütbeleri / eğitimi olmayan bir yetenek kontrolü ve olumsuz bir yetenek değiştirici için) içereceği durumlar da vardır .
2d8 + 1d6 + 4
? Kötü bir zaman
02d05+073
geçerli bir girdi?