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 dsayı, döndürülecek zar sayısıdır; en azından olmalı 1ve sağlanmazsa varsayılan olarak 1ayarlanmalıdır.
Hemen ardından gereken tamsayı dher 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 +0ve +0belirtilmezse 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, 3d6daha fazla üretmelidir 10daha s 4s .
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!
nve pisteğe bağlı olarak tanımlanır , ancak bunları ( d20+) geçersiz olarak eklememeyi seçen girdi .
+yalnızca değiştirici psağlandığında eklenmesi gerektiğini düşünüyorum .
1d4+1d6bir hançere saldıran bir Rogue sinsi için) veya negatif p(örneğin, 1d20-1rü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+073geçerli bir girdi?