Algunos amigos y yo hemos jugado DSA (un juego de rol de mesa principalmente alemán muy parecido a D&D). Me preguntaba cuáles son las posibilidades de pasar las tiradas, por lo que tendrá que escribir un código para calcularlo.
Tu personaje está definido por estadísticas (de 8 a 14) y (TV) Valores de talento (0 a 21). Por ahora usaremos la escalada como ejemplo.
Pruebas de talento
Un talento (escalada) se ve así: (Coraje-Destreza-Fuerza) TV: 7. Para probar un personaje en un talento, tira estas estadísticas con un dado de 20 lados e intenta llegar por debajo o igual a la estadística, si lo haces bien De lo contrario, puede usar sus puntos de TV para reducir el rollo con una proporción de 1: 1.
Ejemplo
Un cazador con coraje 12, destreza 13 y fuerza 14 está tratando de trepar a un árbol, su televisor es 7.
Tira un 3, el valor está por debajo de 12, por lo que pasó esa tirada.
Luego saca un 17, 17 es 4 más que 13, por lo que 4 TV se acostumbran con 3 restantes.
Para la última tirada obtienes un 14, punto al pasar.
Se pasan todos los rollos y el cazador logró trepar al árbol, quedan 3 televisores.
Entrada
4 valores en cualquier formato que elija, tomados de la entrada estándar de su idioma. Sin embargo, tiene que estar en este orden.
Por ejemplo, 12 13 14 7
or 12,13,14,7
o como una matriz {12,13,14,7} o mixta[12, 14, 8], 3
Salida
La posibilidad de con qué frecuencia pasan los rollos.
Por ejemplo (para valores anteriores)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
Para la bonificación: nuevamente el formateo no es el problema aquí, envíalo como quieras pero en el siguiente orden:
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
y así sucesivamente hasta que no quede televisión.
12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273
12,14,8,3 = 0.678/0.056/0.051/0.047/0.168
Desafío y reglas y bonificación
Deberá descubrir, dada la entrada, la posibilidad de pasar las tiradas con una precisión de + - 0.5%.
-20% si su programa también genera posibilidades de pasar con
n
TV (ver salida).Este es el código de golf , por lo que gana el código más corto en bytes.
[12, 14, 8], 3
?