Opracowując matematykę i rozwiązując pod Level
warunkiem doświadczenia XP
, otrzymujemy:
Level=1+1+8×XP÷50−−−−−−−−−−−−−√2
Na przykład, jaki jest poziom gracza dla ?XP=300
1+1+8×300÷50−−−−−−−−−−−−−√2)= 4
Zgodnie z prośbą.
Lub jaki jest poziom XP = 100000
?
1 + 1 + 8 × 100000 ÷ 50----------------√2)= 63
Mówiąc bardziej ogólnie, dla dowolnego progu początkowego na poziomie 1:
L e v e l = 1 + 1 + 8 × t h r e s h o l d÷ 50------------------√2)
Możesz także zrobić odwrotną czynność i obliczyć XP
wymagany poziom dla danego poziomu, rozwiązując powyższą formułę dla XP.
XP.= ( L e v e l2)- L e v e l ) × t h r e s h o l d2)
Zauważ, że powyższa formuła działa z ułamkami, ale musisz zaokrąglić w dół do następnej liczby całkowitej. Na przykład w C ++ / C # możesz użyć (int) Level.
Aby uzyskać powyższą formułę w postaci zamkniętej, zastosowałem równania różnicowe, sumowanie Gaussa i wzór kwadratowy.
Jeśli jesteś zainteresowany rozwiązaniem tej formuły krok po kroku ...
Wykonujemy algorytm rekurencyjny, rozpoczynając nasze rozważania, które ostatecznie Experience(next_level) = Experience(current_level) + current_level*50
.
Na przykład, aby uzyskać , mamy:XP.L e v e l 3
XP.L e v e l 3= XP.L e v e l 2+ 2 × 50
Gdzie 2*50
pochodzi z prośby PO, że doświadczenie potrzebne do osiągnięcia następnego poziomu to obecny poziom * 50.
Teraz podstawiamy tą samą logiką do wzoru. To jest:XpLevel2
Zastąp w powyższym wzorze:XPLevel2=XPLevel1+2×50
XpLevel3=XpLevel1+1×50+2×50
a wynosi zaledwie 50, co jest naszym punktem wyjścia. StądXpLevel1
XpLevel3=50+2×50=150
Możemy rozpoznać wzór rekurencyjnego obliczania wyższych poziomów i skończonego łańcucha sumowań.
XpLevelN=50+2×50+3×50+...+(N- 1 ) × 50 = ∑i = 0n - 1i × 50
Gdzie N jest poziomem do osiągnięcia. Aby zdobyć XP za poziom N, musimy rozwiązać dla N.
XpL e v e l N÷ 50 = ∑i = 0n - 1ja
Teraz prawej stronie jest po prostu sumą od 1 do N-1, która może być wyrażona za pomocą znanego Gaussa sumowania . StądN.× ( N+ 1 ) ÷ 2 - N
XpL e v e l N÷ 50 = N( N+ 1 ) ÷ 2 - N
Lub tylko
2 ∗ ( XpL e v e l N- 50 ) ÷ 50 = N( N+ 1 ) - 2 N.
Wreszcie, stawiając wszystko na jednej stronie:
0 = N2)- N- 2 × XpL e v e l N÷ 50
Jest to teraz formuła kwadratowa dająca rozwiązanie negatywne i pozytywne, z których tylko dodatnia jest istotna, ponieważ nie ma poziomów ujemnych. Teraz otrzymujemy:
N.= 1 + 1 + 4 × 2 × XpL e v e l N50-----------√2)
Obecny poziom uzależniony od XP i liniowego progu wynosi zatem:
L e v e l = 1 + 1 + 8 × XP.÷ t h r e s h o l d-------------------√2)
L e v e l = XP.√5.0XP
Level 100
Edycja : Ta formuła działa w pełni tak, jak powinna i prawidłowo generuje prąd level
, XP
z liniowym progiem progowym, zgodnie z wymaganiami PO. (Poprzednia formuła dawała „poziom + 1”, zakładając, że gracz zaczął od poziomu 0, co było moim błędem - rozwiązałem go podczas przerwy na lunch pisząc na małej chusteczce! :)