Voglio giocare a Dungeons and Dragons, ma non ho dadi! La tua sfida è lanciare alcuni dadi D&D.
La specifica del formato di input in formato 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>
Il numero intero opzionale prima del d
è il numero di dadi da lanciare; deve essere almeno 1
e il valore predefinito è 1
se non fornito.
Il numero intero richiesto immediatamente dopo il d
è il numero di lati di ciascun dado; deve essere almeno 1
. I lati di ciascun dado sono numeri interi positivi consecutivi distinti a partire da 1
.
Il modificatore opzionale può essere +0
, e per impostazione predefinita è +0
se non specificato.
Ad esempio, per l'input 2d10+5
, si generano due numeri casuali da 1 a 10 inclusi, sommarli e aggiungere 5. Quindi si otterrà il risultato.
Se si riceve input non valido, come ad esempio 2d
, d20+
, 0d4
, 2d5+1+2
, 2+2
, o qualsiasi altra cosa che non va bene questo formato, è necessario l'uscita " Invalid input
". In caso contrario, è necessario produrre solo un intero intero casuale, ponderato in base all'input. Ad esempio, 3d6
dovrebbe produrre più 10
s che 4
s .
Casi test
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
Questo è code-golf , quindi vincerà il codice più breve in byte!
n
e p
come facoltativo, ma input che scelgono di non includerli ( d20+
) come non validi.
+
segno dovrebbe essere aggiunto solo se p
viene fornito il modificatore .
1d4+1d6
per un ladro che attacca furtivamente con un pugnale) o con un negativo p
(ad esempio, 1d20-1
per un controllo delle abilità senza gradi / addestramento e un modificatore di abilità negativo).
2d8 + 1d6 + 4
? Ti
02d05+073
un input valido?