JeuWeb - Crée ton jeu par navigateur
[PHP] Algorithme de calcul du niveau d'un joueur - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Algorithme de calcul du niveau d'un joueur (/showthread.php?tid=6658)

Pages : 1 2 3


RE: [PHP] Algorithme de calcul du niveau d'un joueur - niahoo - 22-02-2013

Ah là c'est bien on peut ajuster pas mal !

Merci Smile

Au passage, tu connais une alternative gratos sympa a maple qui permette de faire des courbes comme ça ? D'habitude je fais avec des traceurs web mais c'est très limité. J'ai pas besoin de plus de fonctionnalités.

sage à l'air pas mal

Geogebra aussi

J'avais fait un topic sur des outils de traçage de courbes, je ne le retrouve plus.


RE: [PHP] Algorithme de calcul du niveau d'un joueur - starmindfr - 22-02-2013

pas mal merci je vais tester la derniere formule avec du php pour voir, en attendant en effet j'ai fait un switch case avec les 11 niveaux mais d'une part ca oblige a tous les ajuster un par un, d'autre part ca oblige a ajouter des niveaux ou tout recalculer si c'est trop fantaisiste Smile

Par exemple les premiers niveaux c'est du 50 a 200 xp mais vers le 9 c'est du million d'xp ... de memoire ca correspond a certain jeux comme AOC mais eux ont 80 niveaux et rien apres... alors qu'au contraire je prefere que l'on progresse apres le 11 meme si c'est tres lent.


RE: [PHP] Algorithme de calcul du niveau d'un joueur - Xenos - 22-02-2013

J'ai GraphCalc pour les courbes rapides (grosse calculette).
Giac/Xcas a l'air pas mal non plus


RE: [PHP] Algorithme de calcul du niveau d'un joueur - Malya - 22-02-2013

Je rajoute une petite question car ce topic m'a beaucoup intéressé.

Si on prend une formule qui calcule l'expérience et le level up, et qu'on a, par exemple, 10 personnes (en fait je parle pour mon petit projet de cartes évolutives). Bref, mettons 10 perso qui montent chacun à leur rythme.

Question 1: lorsque que l'on code, il n'y a qu'un passage à faire ou il faut en écrire un pour chaque élément/perso? Car il faut aussi que tout reste en "mémoire" pour continuer l'évolution.

Question 2: si je peux utiliser le même code pour tous, est-ce que je peux implanter des variantes afin que d'autres persos aient un système d'évolution différent? ou il y a un risque de conflit?


RE: [PHP] Algorithme de calcul du niveau d'un joueur - niahoo - 22-02-2013

Ton perso à 100 points d'expérience et il est de niveau 2. tout d'un coup, il gagne 50 points d'expérience. Il a donc désormais 150 points.

Tu appliques donc la fonction calcul_niveau(150) et si ça te renvoie un nombre supérieur à 2, par exemple 3, ça veut dire que ton personnage devrait être du niveau indiqué, ici 3.

Il faut bien sur faire passer l'expérience de chaque personnage par la fonction pour calculer leur niveau.

Enfin, question 2, tu peux définir différentes fonctions calcul_niveau selon le type de personnage, bien sur, si tu estimes qu'un guerrier enchaine les mobs alors qu'un soigneur a du max a faire de l'expérience. Mais alors si tes personnages jouent en groupe il faudra faire des ajustement pour ne pas favoriser les prêtres.


RE: [PHP] Algorithme de calcul du niveau d'un joueur - Xenos - 22-02-2013

PS: Je pense que le calcul du niveau à partir de l'xp devrait être une méthode associée à la classe de l'objet dont on veut le niveau, objet qui hériterai de la classe abstraite "personnage", qui comporte la méthode, virtuelle ou non, "calcul_niveau", surchargée au besoin dans les classes-filles. Le polymorphisme, si tu fais de la POO, sera plus pratique que de faire des switch dans ta fonction globale de calcul de niveau.


RE: [PHP] Algorithme de calcul du niveau d'un joueur - archANJS - 22-02-2013

J'ai également une question, d'ordre purement instructif. Imaginons que j'utilise l'une de ces formules pour calculer le levelling de personnages dans un jeu. Or, au cours d'une quête, mon personnage récolte un chapeau qui lui permet d'apprendre plus vite (et donc de monter plus rapidement de niveau). Comment procéderiez-vous? Doubler (ou simplement augmenter) les points d'expériences perçus ou plutôt modifier la courbe de progression?


RE: [PHP] Algorithme de calcul du niveau d'un joueur - starmindfr - 22-02-2013

il me semble difficile d'integrer ca du coté de la courbe si elle ne sert qu'a valider le niveau en lisant l'xp totale; du coté des gains d'xp je suppose qu'il faut dans toutes les pages de codes faire un appel a une fonction gain d'xp qui inclue une majoration par variable, a faire en début de création du jeu pour éviter par la suite de rattraper tous les bouts de codes qui donnent de l'xp...


RE: [PHP] Algorithme de calcul du niveau d'un joueur - Ter Rowan - 22-02-2013

(22-02-2013, 08:32 PM)archANJS a écrit : J'ai également une question, d'ordre purement instructif. Imaginons que j'utilise l'une de ces formules pour calculer le levelling de personnages dans un jeu. Or, au cours d'une quête, mon personnage récolte un chapeau qui lui permet d'apprendre plus vite (et donc de monter plus rapidement de niveau). Comment procéderiez-vous? Doubler (ou simplement augmenter) les points d'expériences perçus ou plutôt modifier la courbe de progression?

Je dirais augmenter l xp

(22-02-2013, 08:43 PM)starmindfr a écrit : il me semble difficile d'integrer ca du coté de la courbe si elle ne sert qu'a valider le niveau en lisant l'xp totale; du coté des gains d'xp je suppose qu'il faut dans toutes les pages de codes faire un appel a une fonction gain d'xp qui inclue une majoration par variable, a faire en début de création du jeu pour éviter par la suite de rattraper tous les bouts de codes qui donnent de l'xp...

si tu programmes en objet, tu as une classe personnage et une méthode gagneXp( $xp )
Tous tes bouts de code doivent appeler cette méthode, et c est dans cette méthode que tu calcules correctement le gain d xp


RE: [PHP] Algorithme de calcul du niveau d'un joueur - Xenos - 22-02-2013

@archAnj: oui, comme cela, on simplifie grandement les choses, et dire au joueur "ce chapeau équivaut à N points d'xp" est bien plus simple que de dire "grâce à ce chapeau, la fonction de calcul de votre niveau en fonction de vos points d'expériences est modifiée pour être plus rapidement croissante..." (ou alors, tu fais un jeu sur les maths xdd)
Je rejoins donc starmindfr et Ter Rowan (j'aurai du lire leur post avant xdd)

On peut aussi avoir, en POO, une méthode qui évalue l'xp vue de l'extérieur, c'est à dire avec tous les gadgets (stockés dans des attributs de la classe) dont le personnage (instance de la classe) est équipé.