24-10-2013, 12:54 PM
@niahoo: si tu veux un niveau max, il sera encore plus simple d'avoir une fonction qui ne tend pas vers l'infini, mais vers N_max (le niveau maximum).
Par exemple:
Niveau = E(Nmax * (1-exp(-x)))
Cette fonction tend vers Nmax quand x (l'expérience) tend vers l'infini. Tu as donc des points "infinis" (qui peuvent ne pas être affichés si besoin, on donnc juste le niveau du joueur), mais un niveau maximum (qui ne sera, ici, jamais atteint; il suffit d'utiliser l'arrondis au lieux de la troncature pour l'atteindre).
D'un point de vue technique, si tu retiens la solution de Gege_KAT, évite les calculs type "U(n) = f(U(n-1))", car ces calculs sont récursifs, et ralentissent souvent le serveur pour rien (on peut trouver une formule qui ne requiert pas f(n-1) pour trouver f(n)).
Par exemple:
Niveau = E(Nmax * (1-exp(-x)))
Cette fonction tend vers Nmax quand x (l'expérience) tend vers l'infini. Tu as donc des points "infinis" (qui peuvent ne pas être affichés si besoin, on donnc juste le niveau du joueur), mais un niveau maximum (qui ne sera, ici, jamais atteint; il suffit d'utiliser l'arrondis au lieux de la troncature pour l'atteindre).
D'un point de vue technique, si tu retiens la solution de Gege_KAT, évite les calculs type "U(n) = f(U(n-1))", car ces calculs sont récursifs, et ralentissent souvent le serveur pour rien (on peut trouver une formule qui ne requiert pas f(n-1) pour trouver f(n)).