Ich möchte Dungeons and Dragons spielen, aber ich habe keine Würfel! Ihre Herausforderung besteht darin, einige D & D-Würfel zu werfen.
Die Eingabeformatspezifikation in Backus-Naur-Form lautet:
<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>
Die optionale Ganzzahl vor dem d
ist die Anzahl der Würfel, die gewürfelt werden sollen. Dies muss mindestens der Fall sein 1
, und der Standardwert ist, 1
wenn er nicht angegeben wird.
Die erforderliche Ganzzahl unmittelbar nach dem d
ist die Anzahl der Seiten, die jeder Würfel hat; es muss zumindest sein 1
. Die Seiten jedes Würfels sind verschiedene aufeinanderfolgende positive ganze Zahlen, beginnend mit 1
.
Der optionale Modifikator kann sein +0
und ist standardmäßig +0
nicht angegeben.
Für die Eingabe 2d10+5
generieren Sie beispielsweise zwei Zufallszahlen von 1 bis einschließlich 10, addieren diese und addieren 5. Anschließend geben Sie das Ergebnis aus.
Wenn Sie erhalten ungültige Eingaben, wie zum Beispiel 2d
, d20+
, 0d4
, 2d5+1+2
, 2+2
, oder irgendetwas anderes , das dieses Format nicht paßt, müssen Sie Ausgang „ Invalid input
“. Andernfalls müssen Sie nur eine einzelne zufällige Ganzzahl ausgeben, die entsprechend der Eingabe gewichtet ist. Zum Beispiel 3d6
sollte mehr 10
s als 4
s produzieren .
Testfälle
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
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
n
und p
als optional, aber Eingaben, die sie nicht enthalten möchten ( d20+
) als ungültig.
+
Zeichen sollte nur hinzugefügt werden, wenn der Modifikator p
bereitgestellt wird.
1d4+1d6
für einen Schurken, der mit einem Dolch angreift) oder negativ ist p
(z. B. 1d20-1
für eine Fähigkeitsüberprüfung ohne Ränge / Training und einen negativen Fähigkeitsmodifikator).
2d8 + 1d6 + 4
? Du wirst eine schlechte Zeit haben
02d05+073
eine gültige Eingabe?