Al resolver las matemáticas y resolver la Level
condición condicional de la experiencia XP
, obtenemos:
L e v e l = 1 + 1 + 8 × XPAGS÷ 50-------------√2
Por ejemplo, ¿cuál es el nivel del jugador para ?XPAGS= 300
1 + 1 + 8 × 300 ÷ 50-------------√2= 4
De acuerdo a lo pedido.
¿O para qué es el nivel XP = 100000
?
1 + 1 + 8 × 100000 ÷ 50----------------√2= 63
En términos más generales, para un umbral de inicio arbitrario en el Nivel 1:
L e v e l = 1 + 1 + 8 × t h r e s h o l d÷ 50------------------√2
También puede hacer lo contrario y calcular lo XP
necesario para cualquier nivel dado resolviendo la fórmula anterior para XP.
XPAGS= ( L e v e l2- L e v e l ) × t h r e s h o l d2
Tenga en cuenta que la fórmula anterior funciona con fracciones, pero debe redondear al siguiente valor entero. Por ejemplo, en C ++ / C # podría usar (int) Level.
Para obtener la fórmula de forma cerrada anterior, utilicé ecuaciones de diferencia, suma de Gauss y una fórmula cuadrática.
Si está interesado en la solución de esta fórmula paso a paso ...
Hacemos un algoritmo recursivo comenzando nuestras consideraciones que finalmente Experience(next_level) = Experience(current_level) + current_level*50
.
Por ejemplo, para obtener tenemos:XPAGSL e v e l 3
XPAGSL e v e l 3= XPAGSL e v e l 2+ 2 × 50
Donde, 2*50
proviene de la solicitud del OP que la experiencia necesaria para alcanzar el siguiente nivel es el nivel actual * 50.
Ahora, sustituimos con la misma lógica en la fórmula. Es decir:XpagsL e v e l 2
Sustituya en la fórmula anterior:XPAGSL e v e l 2= XPAGSL e v e l 1+ 2 × 50
XpagsL e v e l 3= XpagsL e v e l 1+ 1 × 50 + 2 × 50
y es solo 50, que es nuestro punto de partida. Por lo tantoXpagsL e v e l 1
XpagsL e v e l 3= 50 + 2 × 50 = 150
Podemos reconocer un patrón para calcular recursivamente niveles más altos y una cadena finita de sumatorias.
XpagsL e v e l N= 50 + 2 × 50 + 3 × 50 + . . . + ( N- 1 ) × 50 = ∑i = 0n - 1i × 50
Donde N es el nivel a alcanzar. Para obtener el XP para el nivel N, necesitamos resolver para N.
XpagsL e v e l N÷ 50 = ∑i = 0n - 1yo
norte× ( N+ 1 ) ÷ 2 - N
XpagsL e v e l N÷ 50 = N( N+ 1 ) ÷ 2 - N
o solo
2 ∗ ( XpagsL e v e l N- 50 ) ÷ 50 = N( N+ 1 ) - 2 N
Finalmente, poniendo todo de un lado:
0 = N2- N- 2 × XpagsL e v e l N÷ 50
Esta es ahora una fórmula cuadrática que produce una solución negativa y positiva, de la cual solo lo positivo es relevante ya que no hay niveles negativos. Ahora obtenemos:
norte= 1 + 1 + 4 × 2 × XpagsL e v e l N50-----------√2
El nivel actual condicional en XP y umbral lineal es por lo tanto:
L e v e l = 1 + 1 + 8 × XPAGS÷ t h r e s h o l d-------------------√2
L e v e l = XPAGS√5.0XP
Level 100
Editar : esta fórmula funciona completamente como debería y genera correctamente el level
condicional actual XP
con una progresión de umbral lineal según lo solicitado por el OP. (La fórmula anterior arrojó "nivel + 1" al suponer que el jugador comenzó desde el Nivel 0, que era mi error: ¡lo había resuelto en mi hora de almuerzo escribiendo en un pañuelo! :)