Matematiği işlerken ve Level
koşullara dayalı deneyimleri çözerken XP
, şunları elde ederiz:
L e v e l = 1 + 1 + 8 × XP÷ 50-------------√2
Örneğin, oyuncunun için seviyesi nedir?XP= 300
1 + 1 + 8 × 300 ÷ 50-------------√2= 4
İstendiği gibi.
Veya, seviye XP = 100000
nedir?
1 + 1 + 8 × 100000 ÷ 50----------------√2= 63
Daha genel olarak , Seviye 1'deki keyfi bir başlangıç eşiği için:
L , e v e L = 1 + 1 + 8 x T h r e s h O l d÷ 50------------------√2
Ayrıca XP
, XP için yukarıdaki formülü çözerek, tersini yapabilir ve herhangi bir seviye için gerekenleri hesaplayabilirsiniz .
XP= ( L e v e l2- L , e v e L ) x t h r e s h O l d2
Yukarıdaki formülün kesirlerle çalıştığını ancak bir sonraki tamsayı değerine yuvarlamanız gerektiğini unutmayın. Örneğin C ++ / C # 'da (int) Seviyesini kullanabilirsiniz.
Yukarıdaki kapalı formülü elde etmek için fark denklemlerini, Gauss toplamını ve ikinci dereceden bir formülü kullandım.
Bu formülün çözümüyle ilgileniyorsanız adım adım ...
Sonunda ki düşüncelerimizi başlatarak özyinelemeli bir algoritma yapıyoruz Experience(next_level) = Experience(current_level) + current_level*50
.
Örneğin, elde etmek üzere Elimizdeki:XPL e v e l 3
XPL e v e l 3= XPL e v e l 2+ 2 × 50
, Nerede 2*50
deneyimi sonraki seviyeye ulaşmak için gerekli OP'ın isteği geliyor akım seviyesi * 50'dir.
Şimdi, yerine aynı mantıkla formülü koyarız . Yani:XpL e v e l 2
Yerine yukarıdaki formül içinde:XPLevel2=XPLevel1+2×50
XpLevel3=XpLevel1+1×50+2×50
ve , başlangıç noktamız olan sadece 50'dir. bundan dolayıXpLevel1
XpLevel3=50+2×50=150
Daha yüksek seviyeleri tekrarlı bir şekilde hesaplamak için bir kalıp ve sonlu bir toplamlar zinciri tanıyabiliriz.
XpLevelN=50+2×50+3×50+...+(N−1)×50=∑i=0n−1i×50
N, ulaşılacak seviyedir. N seviyesi için XP’yi almak için N için çözmemiz gerekir.
XpLevelN÷50=∑i=0n−1i
Şimdi sağ taraf, ünlü Gauss toplamı ile ifade edilebilecek olan 1'den N-1'e kadar bir toplamdır . bundan dolayıN×(N+1)÷2−N
XpLevelN÷50=N(N+1)÷2−N
ya da sadece
2∗(XpLevelN−50)÷50=N(N+1)−2N
Sonunda, her şeyi bir tarafa koymak:
0=N2−N−2×XpLevelN÷ 50
Bu, şimdi negatif seviye olmadığından sadece pozitifin ilgili olduğu negatif ve pozitif bir çözüm veren ikinci dereceden bir formüldür. Şimdi biz elde ediyoruz:
N-= 1 + 1 + 4 × 2 × XpL e v e l N50-----------√2
Bu nedenle, XP ve lineer eşik koşullarına bağlı mevcut seviye şudur:
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
Düzenleme : Bu formül tamamen olması gerektiği gibi çalışmaktadır ve OP'nin talep ettiği gibi lineer bir eşik ilerlemesi ilelevel
koşullu akımı doğru şekilde vermektedir . (Önceki formül, oyuncunun benim erimem olan Seviye 0'dan başladığını varsayarak "seviye + 1" i çıkardı - öğle tatilinde küçük bir dokuya yazarak çözdüm! :)XP