我想玩龙与地下城,但我没有任何骰子!您的挑战是掷出一些D&D骰子。
Backus-Naur格式的输入格式规范为:
<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>
之前的可选整数 d
是掷骰子的数量;它必须至少为1
,1
如果未提供,则默认为。
紧随其后的必需整数 d
是每个芯片的边数;至少应该是1
。每个骰子的边都是从开始的不同的连续正整数1
。
可选修饰符可以是 +0
,+0
如果未指定,则默认为。
例如,对于input 2d10+5
,您生成两个从1到10(含1和10)之间的随机数,将它们加在一起,然后加5。然后将输出结果。
如果您收到无效的输入,如2d
,d20+
,0d4
,2d5+1+2
,2+2
,或其他任何东西,不适合这种格式,你必须输出“ Invalid input
”。否则,您必须仅输出根据输入加权的单个随机整数。例如,3d6
应产生更多10
s4
的。
测试用例
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
这是代码高尔夫球,所以最短的代码(以字节为单位)将获胜!
n
且p
为可选内容,但选择不将其包括在内的输入(d20+
)为无效。
+
只有在p
提供修饰符的情况下,才应添加符号。
1d4+1d6
用匕首偷袭的潜行者)或否定的p
(例如,1d20-1
没有等级/训练的技能检查和否定的能力修正)。
2d8 + 1d6 + 4
。您将会
02d05+073
一个有效的输入?