Editar : no he jugado D&D antes, así que cuando hice esta pregunta por primera vez, no la investigué correctamente. Pido disculpas por esto, y estoy haciendo algunas ediciones que podrían invalidar las respuestas para permanecer lo más fiel posible a las reglas dnd 5e. Lo siento.
Un fanático de D&D de una pregunta reciente de Hot Network parece tener algunos problemas para determinar si los hechizos elegidos de un hechicero se alinean con las posibilidades, ¡y creo que deberíamos ayudar!
Introducción
(todo esto ya se describe en la pregunta mencionada anteriormente)
Un hechicero conoce dos hechizos de nivel 1 desde el principio (nivel 1): [1, 1]
Cada vez que un hechicero gana un nivel (excepto los niveles 12, 14, 16, 18, 19 y 20) aprende un nuevo hechizo (obligatorio).
Además, al subir de nivel, uno puede elegir (opcional) reemplazar uno de los hechizos por otro.
Los hechizos aprendidos y reemplazados deben ser un nivel de ranura de hechizo válido que sea la mitad del nivel de tu hechicero redondeado. Ver esta tabla:
Sorcerer level Highest spell level possible
1 1
2 1
3 2
4 2
5 3
6 3
7 4
8 4
9 5
10 5
11 6
12 6
13 7
14 7
15 8
16 8
17 9
18 9
19 9
20 9
Esto significa que en el nivel 3 se pueden tener niveles de hechizo [1, 1, 2, 2]como este:
Level 1: [1, 1] (initial)
Level 2: [1, 1, 1 (new)]
Level 3: [1, 1, 2 (replaced), 2 (new)]
No es necesario elegir los hechizos de más alto nivel a los que tengas acceso.
Los niveles de hechizo [1, 1, 1, 1]son perfectamente válidos para un nivel 3.
Por último, recuerda que reemplazar un hechizo es una opción opcional para cada nivel . Esto significa que algunos niveles podrían omitir el reemplazo, mientras que otros lo utilizan.
El reto
Haga un programa o función que tome un número entero (nivel) entre 1 y 20.
También debe tomar una serie de enteros (niveles de hechizo) con valores que van del 1 al 9 en cualquier orden (9 es el nivel máximo de hechizo).
La salida del programa debe ser un valor verdadero / falso que valide si los niveles de hechizo elegidos son válidos para un hechicero del nivel dado.
Casos de prueba
Level: 1
Spells: [1, 1]
Output: true
Level: 8
Spells: [1, 1, 2, 3, 3, 5]
Ouput: false
Reason: A level 8 can't ever have access to a level 5 spell.
Level: 5
Spells: [1, 1, 1, 2, 2, 2, 3]
Output: false
Reason: A level 5 can't have access to 7 spells
Level: 11
Spells: [3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6]
Output: false
Reason: Too many spell upgrades.
The highest valid selection for level 11 is
[3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6]
Este es el código de golf : ¡gana menos bytes!
[2,2,3,3]no serían posibles ya que requiere más reemplazo del que tendría acceso un hechicero de ese nivel". ¿No es el hecho de que la lista es de longitud 4 en lugar de 5 una razón más fundamental aquí? (Supongo que [1,3,2,2,3]es posible para un nivel 4 al pasar del nivel 3 [1,1,2(replaced),2(new)]a [1,3(replaced),2,2,3(new)]?)
