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 dist die Anzahl der Würfel, die gewürfelt werden sollen. Dies muss mindestens der Fall sein 1, und der Standardwert ist, 1wenn er nicht angegeben wird.
Die erforderliche Ganzzahl unmittelbar nach dem dist 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 +0und ist standardmäßig +0nicht angegeben.
Für die Eingabe 2d10+5generieren 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 3d6sollte mehr 10s als 4s 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!
nund pals optional, aber Eingaben, die sie nicht enthalten möchten ( d20+) als ungültig.
+Zeichen sollte nur hinzugefügt werden, wenn der Modifikator pbereitgestellt wird.
1d4+1d6für einen Schurken, der mit einem Dolch angreift) oder negativ ist p(z. B. 1d20-1fü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+073eine gültige Eingabe?