
Algoritmus pro výpočet levelů
Ahoj,
hledám něco co neumím pojmenovat, takže je složité vygooglit.
Snad mi někdo poradí zde. Možná jde spíš o nějaký matematický problém, než programovací.
Chtěl bych implementovat na můj web "levely" uživatele. Uživatel něco udělá a dostane nějaké body. Za určitý počet bodů získá level.
Rád bych věděl jak to udělat, aby levely nebyly za stejný počet xp, ale třeba aby každý byl za víc a víc XP, šlo by to udělat násobky, ale to je takové "ubohé".
Někdo lepší nápad?
Příklad:
Level 1. od 0 - 120 xp.
Level 2. od 120 - 333xp.
Level 3. od 333xp - 789xp.
Atd...
Známe třeba z her : wow, lolko, atd...
Díky všem za rady, odkaz na vhodný zdroj (v rozumném jazyce - aj/čj) postačí.
urobis si tabulku a v cykle ju prejdes a ked body < tabulka[i] tak break; a v i mas level.
to je cele riesenie toho "problemu".
Ale jakým způsobem tu tabulku vyrobím? Jde mi o ty intervaly.
Ručně?
Tak to si snad definujes sam, nie? Zavisi od toho kolko bodov sa da ziskat za co. Trebars neco * level^2 apod.
Alebo trebars a * level^2 + b*level +c, a urci si a,b,c. Da sa to principialne aj z grafu.
.. alebo z tych tvojich hodnot
a + b + c = 120 => c=120-a-b
4a + 2b + c = 333
9a + 3b + c = 789
4a + 2b + 120-a-b = 3a + b + 120 = 333 => b = 213-3a
9a + 3b + 120-a-b = 8a + 2b + 120 = 789
8a + 2(213-3a) + 120 = 789
8a + 426 -6a + 120 = 789
2a + 546 = 789
a=121
b=-150
c=149
Funkcia ktoru hladas na zaklade tych 3 tvojich cisel je potom: 121 * level^2 - 150 * level + 149
level 1: 120
level 2: 333
level 3: 788
level 4: 1485
...
To je rozumné, díky.
Na to ti snad staci rovnice, nez delat slozite tabulku. Vygoogli si treba posloupnosti ci grafy kvadratickych/logaritmickych funkci.
Tabulka je jednoducha ked to chces definovat sam nejak normalne 100,200,500,1000,2000,5000 apod. trvalo mi to prave 10 sekund :) A ked mas obmedzeny pocet levelov, vzdy zavisi od okolnosti, ja tie hry nepoznam neviem co tam mate za levely :)