Tengo problemas para recordar todo lo que tengo que hacer al subir de nivel a un personaje de D&D. Por alguna razón, una de las cosas que me da problemas es descubrir cuál debería ser su nuevo valor máximo de HP. Para este desafío, escribirá un programa o función para calcular el valor correcto automáticamente.
Terminología
Lo primero que debe saber para calcular el HP máximo es el "modificador de Constitución". Cada personaje DND tiene seis puntajes de habilidad entera, incluido uno para Constitución. El único conocimiento relevante requerido para este desafío es cómo el puntaje de habilidad de la Constitución afecta a otra estadística, que es el modificador de la Constitución. En resumen, el modificador es igual a floor( (ability_score - 10) / 2 ). Los aventureros solo pueden tener puntajes de habilidad de 1 a 20, inclusive. Su código nunca tendrá que manejar puntajes fuera de ese rango, lo que también significa que nunca tendrá que manejar un modificador menor que -5 o mayor que +5. Aunque el modificador de Constitución puede cambiar a medida que un personaje sube de nivel, sus efectos en HP se aplican de forma retroactiva, por lo que solo se necesita su valor actual para calcular el HP máximo actual.
(Esto es completamente irrelevante para el desafío, pero si tiene curiosidad acerca de cómo afecta al HP máximo: puede suponer que la hazaña "Tough" agrega 2 al modificador de Constitución de un personaje para el cálculo de HP, ya que eso es efectivamente lo que hace Ese no es el texto de la hazaña, pero las matemáticas son exactamente iguales. No tiene que manejar esta hazaña en su respuesta).
Luego, cada clase tiene asignado un tipo de "dado de golpe", que está involucrado en el cálculo de HP. La siguiente tabla enumera los dados de golpe para cada clase.
Sorcerer: d6
Wizard: d6
Bard: d8
Cleric: d8
Druid: d8
Monk: d8
Rogue: d8
Warlock: d8
Fighter: d10
Paladin: d10
Ranger: d10
Barbarian: d12
Finalmente, el nivel del personaje. Todo lo que esto afecta es cuántas veces agregar un valor al total acumulado en la siguiente sección. El nivel de un personaje es un número entero de 1 a 20, incluido 1 . Su código nunca tendrá que manejar un nivel fuera de ese rango. Para alcanzar el nivel n, un personaje comienza en el nivel 1 y sube de nivel n-1veces. Por ejemplo, un personaje de nivel 3 llegó a donde está al ser un personaje de nivel 1 y subir de nivel dos veces.
Cómo calcular el HP máximo
El HP máximo de un personaje es igual a su HP en el nivel 1 más la suma del aumento que recibió en cada nivel.
En el nivel 1
En el nivel 1, el HP de un personaje es igual a la tirada más alta posible en su dado de golpe (el número en el nombre del dado, para aquellos de ustedes que no están familiarizados con los dados que tienen más de 6 lados) más su modificador de Constitución. Recuerde que al calcular HP en un nivel posterior, puede suponer que la Constitución de un personaje siempre ha sido la misma, ya que esta parte del cálculo se vuelve a hacer cada vez que la Constitución cambia.
Al subir de nivel
Cada vez que un personaje sube de nivel, tiene dos opciones. Pueden tirar uno de sus dados de golpe o tomar la tirada promedio de ese dado (redondeado). Cualquiera que elijan, su modificador de Constitución se agrega al resultado. Este total es la cantidad que aumenta su HP. Para este desafío, siempre se toma la tirada promedio, por lo que la salida es determinista. (Nuevamente, si no está familiarizado con> dados de 6 caras, puede calcular la tirada promedio redondeada como (highest_possible_roll / 2) + 1).
Hay una notable excepción. El HP máximo de un personaje siempre aumenta en al menos 1 cada vez que sube de nivel 2 . Si las instrucciones en el párrafo anterior resultarían en un aumento de 0 o menos al subir de nivel, en su lugar, aumentará en 1.
El reto
Su programa o función tomará tres entradas :
- La clase del personaje, como una cadena.
- El nivel del personaje
- El puntaje de habilidad de Constitución del personaje ( no modificador)
Será salida de una sola cosa: la corriente máxima de HP del personaje.
Ejemplos
Todas las combinaciones posibles de entradas y sus salidas asociadas se pueden encontrar en este enlace. En aras de tener algo que ver en esta página, aquí hay 30 casos de prueba elegidos al azar:
Barbarian, 15th level, 13 CON: 125
Rogue, 10th level, 18 CON: 93
Wizard, 15th level, 18 CON: 122
Wizard, 16th level, 1 CON: 16
Barbarian, 15th level, 7 CON: 80
Warlock, 15th level, 3 CON: 18
Ranger, 14th level, 1 CON: 18
Warlock, 3rd level, 14 CON: 24
Druid, 3rd level, 4 CON: 9
Cleric, 11th level, 5 CON: 25
Bard, 20th level, 11 CON: 103
Barbarian, 11th level, 13 CON: 93
Bard, 8th level, 19 CON: 75
Bard, 16th level, 17 CON: 131
Fighter, 10th level, 6 CON: 44
Monk, 10th level, 2 CON: 13
Cleric, 14th level, 17 CON: 115
Cleric, 6th level, 5 CON: 15
Rogue, 7th level, 13 CON: 45
Cleric, 4th level, 14 CON: 31
Rogue, 19th level, 15 CON: 136
Paladin, 13th level, 13 CON: 95
Cleric, 13th level, 15 CON: 94
Bard, 8th level, 5 CON: 19
Monk, 20th level, 11 CON: 103
Barbarian, 8th level, 20 CON: 101
Monk, 1st level, 4 CON: 5
Bard, 5th level, 17 CON: 43
Monk, 18th level, 7 CON: 57
Wizard, 17th level, 5 CON: 19
1. Hablando estrictamente, no creo que haya una regla que diga que 20 es el nivel máximo. Sin embargo, 21 es el punto donde dejará de haber tablas en el libro para decirle cuáles deberían ser algunos de los diversos números en las reglas, incluida la cantidad de experiencia que necesita obtener para alcanzarla. Ese es un límite de nivel lo suficientemente bueno para mí.
2. En realidad no creo que esto sea cierto con RAW. Pregunté en rpg.se y tal cosa no parece estar escrita en ningún lado. Sin embargo, Mike Mearls, diseñador principal de D&D, lo tuiteó en marzo de 2015 . Esta no es la forma autorizada en la que podría argumentar que sería un tweet del desarrollador principal de reglas Jeremy Crawford, pero es evidencia de que es lo que pretendían, así que lo usaré para este desafío.