Je veux jouer à Dungeons and Dragons, mais je n'ai pas de dés! Votre défi est de lancer des dés D&D.
La spécification du format d'entrée sous forme Backus-Naur est:
<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>
L'entier facultatif avant le d
est le nombre de dés à lancer; il doit être au moins 1
, et par défaut 1
s'il n'est pas fourni.
L'entier requis immédiatement après le d
est le nombre de côtés de chaque dé; ça doit être au moins 1
. Les côtés de chaque dé sont des entiers positifs consécutifs distincts commençant à 1
.
Le modificateur facultatif peut être +0
, et il est par défaut +0
s'il n'est pas spécifié.
Par exemple, pour l'entrée 2d10+5
, vous générez deux nombres aléatoires de 1 à 10 inclus, les ajoutez ensemble et en ajoutez 5. Ensuite, vous produirez le résultat.
Si vous recevez une entrée invalide, comme 2d
, d20+
, 0d4
, 2d5+1+2
, 2+2
, ou toute autre chose qui ne correspond pas à ce format, vous devez sortie « Invalid input
». Sinon, vous ne devez générer qu'un seul entier aléatoire, pondéré en fonction de l'entrée. Par exemple, 3d6
devrait produire plus de 10
s que 4
s .
Cas de 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
Il s'agit de code-golf , donc le code le plus court en octets gagnera!
n
et p
comme facultatif, mais les entrées qui choisissent de ne pas les inclure ( d20+
) comme invalides.
+
signe ne devrait être ajouté que si le modificateur p
est fourni.
1d4+1d6
pour un voleur sournois attaquant avec un poignard) ou ayant un négatif p
(par exemple, 1d20-1
pour un test de compétence sans rang / formation et un modificateur de capacité négatif).
2d8 + 1d6 + 4
? Tu vas passer un mauvais moment
02d05+073
une entrée valide?