31
Général Blabla / [Maths] Explication d'une formule
« le: 17 Mars 2008, 14:42:23 »
Il y a des matheux dans la salle?
Je travaille actuellement sur un script permettant de définir un niveau d'expérience, comme dans les RPG. En cherchant un peu, je suis tombé sur une formule mais je ne parviens pas à comprendre son fonctionnement.
Total d'XP requis pour passer au niveau supérieur =XP_cumulé + (niveau_inférieur* 1000)
Ainsi:
- le niveau 1 nécessite 0 points d'XP
- le niveau 2 nécessite 1000 points d'XP ( 1000 + 0)
- 3 -> 3000 (2000 + 1000)
- 4 -> 6000 (3000 + 3000)
- 5 -> 10000 (4000 + 6000)
- 6 -> 15000 (5000 + 10000)
etc...
Jusque là rien de compliqué.
La formule qui me pose problème, c'est celle permettant de récupérer le niveau du joueur:
C'est en php. "floor" arrondit à l'entier inférieur et sqrt correspond à "racine carré". A priori, ça fonctionne sans problème:
- Pour un total d'expérience de 4500 la formule retourne le niveau 3.
- Pour un total d'expérience de 14999, la formule retourne le niveau 5.
- Pour un total d'expérience de 15001, la formule retourne le niveau 6.
- Pour un total d'expérience de 979700, la formule retourne le niveau 44.
Ce que j'aimerais comprendre, c'est: pourquoi? O_O'
D'où sortent ces 0.25, 0.002 et 0.5?
Selon moi, les 0.25 et 0.5 c'est parce qu'on part du niveau 1 et non du niveau 0. La racine carré de 0.25 étant 0.5, la formule ajoute 1 pour ajouter un niveau quelque soit le total d'expérience. Vous pouvez me confirmer ça?
Par contre, ce 0.002.... aucune piste...
Quelqu'un? =}
Je travaille actuellement sur un script permettant de définir un niveau d'expérience, comme dans les RPG. En cherchant un peu, je suis tombé sur une formule mais je ne parviens pas à comprendre son fonctionnement.
Total d'XP requis pour passer au niveau supérieur =XP_cumulé + (niveau_inférieur* 1000)
Ainsi:
- le niveau 1 nécessite 0 points d'XP
- le niveau 2 nécessite 1000 points d'XP ( 1000 + 0)
- 3 -> 3000 (2000 + 1000)
- 4 -> 6000 (3000 + 3000)
- 5 -> 10000 (4000 + 6000)
- 6 -> 15000 (5000 + 10000)
etc...
Jusque là rien de compliqué.
La formule qui me pose problème, c'est celle permettant de récupérer le niveau du joueur:
Code: [Sélectionner]
floor(sqrt(0.25 + total_xp * 0.002) + 0.5)C'est en php. "floor" arrondit à l'entier inférieur et sqrt correspond à "racine carré". A priori, ça fonctionne sans problème:
- Pour un total d'expérience de 4500 la formule retourne le niveau 3.
- Pour un total d'expérience de 14999, la formule retourne le niveau 5.
- Pour un total d'expérience de 15001, la formule retourne le niveau 6.
- Pour un total d'expérience de 979700, la formule retourne le niveau 44.
Ce que j'aimerais comprendre, c'est: pourquoi? O_O'
D'où sortent ces 0.25, 0.002 et 0.5?
Selon moi, les 0.25 et 0.5 c'est parce qu'on part du niveau 1 et non du niveau 0. La racine carré de 0.25 étant 0.5, la formule ajoute 1 pour ajouter un niveau quelque soit le total d'expérience. Vous pouvez me confirmer ça?
Par contre, ce 0.002.... aucune piste...
Quelqu'un? =}




