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 1e il valore predefinito è 1se 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 è +0se 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, 3d6dovrebbe produrre più 10s che 4s .
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!
ne pcome facoltativo, ma input che scelgono di non includerli ( d20+) come non validi.
+segno dovrebbe essere aggiunto solo se pviene fornito il modificatore .
1d4+1d6per un ladro che attacca furtivamente con un pugnale) o con un negativo p(ad esempio, 1d20-1per un controllo delle abilità senza gradi / addestramento e un modificatore di abilità negativo).
2d8 + 1d6 + 4? Ti
02d05+073un input valido?