JeuWeb - Crée ton jeu par navigateur
Calcul de degat de combat tour par tour - 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 : Calcul de degat de combat tour par tour (/showthread.php?tid=7252)

Pages : 1 2


RE: Calcul de degat de combat tour par tour - niahoo - 20-11-2014

Non mais sérieusement ? tu n'es pas capable d'écrire une seule phrase sans faire une faute. ton "ou" signifie "ou bien", sinon on met un accent ... Le mieux étant « Si tu fais deux attaques lors desquelles tu te prends 3 de riposte bah boom t'es mort »

Parce que « tu fait 2 attaque ou tu te prend 3 de riposte bah boom tes mort » comme tu ne mets pas le pluriel à "attaque" on peut croire que 2 c'est la valeur de l'attaque. Sinon on l'écrit en lettres ("deux"). Et "où" prend un accent sinon c'est "ou bien". Donc au lieu de t'énerver, apprends plutôt à écrire correctement en français. Ensuite apprends éventuellement à coder et ensuite tu pourras peut-être créer un jeu.

Et c'est bien de chercher de vraies réponses, mais penses aussi à poser de vraies questions, sinon on n'est pas sortis.


RE: Calcul de degat de combat tour par tour - Ter Rowan - 20-11-2014

mauvaise réponse Assas175 que de réagir encore plus vivement à ton interlocuteur.

Maintenant j'ai enfin compris pourquoi avec 23xp on arrivait a faire monter de 2xp


supposons qu'on ait un score d'habilité de 10
je vais consommer 10 xp pour passer ce score à 11
il me reste alors 13 xp
je peux donc consommer 11 xp pour passer ce score à 12

il me reste donc 2 xpsur mes 23 pour augmenter le score d'habilité de 10 à 12

mais ça, vois tu, tu ne l'as jamais expliqué. En utilisant le même terme xp pour les valeurs des caractéristiques et les points à répartir, tu rends tes explications très confuses (et c'est la même chose pour l'histoire des ripostes, mais c'est mieux expliqué avec ton dernier post, même si le ton que tu y mets n'invite pas à t'aider).

maintenant j'arrive toujours pas à comprendre ce qui ne va pas au niveau des dégâts.
Si deux types se battent, et que tu as un système d'attaque riposte, pourquoi est ce choquant que l'attaquant meurt ? là je n'ai pas compris.


Dernière chose avec le code ci dessous :

function up_xp(a){
if(a == 10){b = 10;}else if(a == 11){b = 11;}else if(a == 12){b = 12;}
else if(a == 13){b = 13;} else if(a == 14){b = 14;} else if(a == 15){b = 15;}
else if(a == 16){b = 16;} else if(a == 17){b = 17;} else if(a == 18){b = 18;}
else if(a == 19){b = 19;} else if(a == 20){b = 20;} else if(a == 21){b = 21;}
else if(a == 22){b = 22;} else if(a == 23){b = 23;} else if(a == 24){b = 24;}
else if(a == 25){b = 25;} else {b = 0;} return b;
}

d'une part ça revient à

function up_xp(a){
if( parseInt(a)>9 && parseInt(a)<26)
return a;
else
return 0;
}
mais en plus... le type qui a 26 en score de habilité (ou force ou...) et bien ca lui coute 0xp de passer à 27,28,29, 30

tu devrais donc revoir cela, si tu n'as pas de limite sur le score, autant avoir


function up_xp(a){
return a;
}



RE: Calcul de degat de combat tour par tour - Xenos - 20-11-2014

La bataille sur ce sujet du forum est plus violente que les combats dont il est question...!
Habituellement, on n'envoie pas promener ceux qui prennent le temps de réponse à la question...


Bonne piste que d'étudier l'existant dans les autres jeux, y compris les jeux de plateau: suis la piste que Ter Rowan t'as montrée.



Sinon, fais progressif: part d'une base simple, par exemple la différence de niveau (ou le quotient), et complexifie la formule avec les autres paramètres. Utilise les différentes fonctions mathématiques "classiques" (différence, quotient, inverse, exponentielle, logarithme,...) et insère, par exemple, une multiplication par la force, ou l'écart relatif des habiletés.

Un exemple (en considérant, comme dit justement Ter Rowan, que l'attaque et la riposte sont en fait deux assauts fonctionnant sur le même principe):

Code :
#Dégats de base
Degats = 5

#On complexifie avec le niveau
Degats() = Frapper(5)
Frapper(x) = x*(1+NiveauAttaquant)/(1+NiveauDefenseur)

# La force fait frapper plus fort: on l'insère
Degats() = Force( Frapper(5) )
Force(x) = x*(1+ForceAttaquant)

# Ah ouais, mais là, ça "monte" trop vite, la force a trop d'impact: on réduit
Force(x) = x*log10(1+ForceAttaquant)

# Mais la résistance de l'autre compte... Logiquement, elle doit marcher un peu comme la force:
Force(x) = x*( log10((1+ForceAttaquant)/(1+ResistanceDefenseur)) )

# Ajoutons l'esquive et l'habileté
Degats() = Esquiver( Force( Frapper(5) ) )
DiffEsquive() = (HabileteAttaquant-EsquiveDefenseur)
Esquiver(x) = x*DiffEsquive

# Mouais... "Tassons" un peu: quand l'habileté et l'esquive sont "proches", faudrait que ca ne change rien
Esquiver(x) = x*( DiffEsquive*(1-exp(-DiffEsquive²/20)) )

# Ah oui, mais si l'esquive du défenseur dépasse l'habileté de l'attaquant? Il faut limiter les
Degats() = Limiter(0, Esquiver( Force( Frapper(5) ) ), 10)

# etc

L'avant-dernière formule venant de la constatation graphique:
[Image: x%5B1-exp%5B-x.%20div%2020%5D%5D.png]
C'est là où on ne regrette pas d'avoir suivit les cours de maths (bien que l'on puisse trouver des fonctions classiques sur le net et s'en resservir) !

Cette approche progressive, en imbriquant les fonctions (à l'implémentation, cela revient à les chaîner) permettra d'adapter chaque composante, d'en rajouter, d'en retirer etc...
On peut, avant la chaine, tester l'écart d'esquive entre les deux joueurs par exemple, et ne lancer l'attaque que si le défenseur n'a pas esquivé (c'est là où on s'inspire de ce qui existe déjà).

Au bout du compte, on arrive à quelque chose comme
Code :
Degats() = Limiter(0, Esquiver( Force( Frapper(5) ) ), 10)
DiffEsquive() = (HabileteAttaquant-EsquiveDefenseur)
Esquiver(x) = x*( DiffEsquive*(1-exp(-DiffEsquive²/20)) )
Force(x) = x*( log10((1+ForceAttaquant)/(1+ResistanceDefenseur)) )
Frapper(x) = x*(1+NiveauAttaquant)/(1+NiveauDefenseur)

On peut même ajuster chacune des sous-fonctions (Force(x), Esquiver(x)...) pour jouer sur l'influence de chacun des paramètres (rien n'oblige à débuter chaque fonction par "x*", on peut préférer un "x+" par exemple, ou des combinaisons "x*(...+x)")...


RE: Calcul de degat de combat tour par tour - Assas175 - 20-11-2014




RE: Calcul de degat de combat tour par tour - Xenos - 20-11-2014

Un code sans commentaire, mal indenté, perso, je lirai pas Wink
Sinon, le $player->username, ca sent le XSS à chaque ligne...

Ne cite pas tous les messages: quand tu réponds à un post précédent, indique juste à qui tu t'adresses (@alucard, @xenos, @ter rowan...).

Sinon, si on part d'un score de 10 sur une caractéristique, et qu'on doit mettre (score actuel+1) points d'xp pour passer au score suivant, on a:
Score → XP (dépense cumulée depuis le score 10)
10 → 0
11 → 11
12 → 23
13 → 36
15 → 65
20 → 155
25 → 270
30 → 410
40 → 765
50 → 1220
100 → 4995

Formule: XPCumulée(score S) = (S*(S+1) - 10*11)/2

On risque d'arriver au même soucis que ogame (hop, point godwin des JV: comparer à ogame!): plus on avance dans le jeu, plus c'est difficile et long de progresser, à cause du terme S² (ou S*(S+1) si vous préférez)... Bon, ogame faisait bien pire (terme en 2^S et non en S^2), mais gagner +1 score sur une caractéristique quand on est déjà au score 40, c'est très coûteux (41 xp) pour un gain faible...
Cela risque d'entrainer une lassitude des joueurs (j'ai lâché ogame car au bout d'un moment, on n'a plus rien de bien folichon à avancer, tout coûte une fortune et ne rapporte des petits graviers).


RE: Calcul de degat de combat tour par tour - Assas175 - 20-11-2014

Ok merci des infos Xenos


RE: Calcul de degat de combat tour par tour - @lucard - 21-11-2014

(20-11-2014, 06:28 PM)Assas175 a écrit : Personnellement sa me donne même pas envie de te répondre , mais bon vu que tu te crois si malin ....
puis je ne savais pas qu'on était à l'école et que les fautes d'orthographe t'empêchaient de comprendre un problème , au pire si tu veux je veux bien te le rééxpliquer en kikoolol peut être que tu comprendra mieux.. fin bref
Et bien là, il a fallut 3 cerveaux pour comprendre ton problème, alors : soit tu es un génie, soit tu expliques mal, à toi de voir.
(20-11-2014, 06:28 PM)Assas175 a écrit : Damn ! 23points ? y'avait pas plus simple : genre 13,24751 pts ? <--- si j'ai envie de foutre 23 c'est mon droit non ?!
Si je te fais remarquer que 23 points ça me choque, c'est pas pour faire le chieur, c'est simplement qu'un nombre premier c'est, pour moi, pas l'idéal pour faire évoluer des XP.
un nombre multi-multiple comme 24 (multiple de 2 - 3 - 4 - 6 - 8 - 12) ça donnerait plus de choix au joueur, plutôt que d'imposer 23pts, sans dire vraiment le pourquoi (y'en à pas ici à priori).
ça fait un peu :
"C'est moi le dieu du Jeu, je dicte (dictature ?) que ça sera 23pts et si ça te plait pas, va te fait f¤¤tre."
(20-11-2014, 06:28 PM)Assas175 a écrit : bref : quand je jouer monte : update Point_experience=+23 Wink
quand il répartit ces xp , si tu a bien suivis le script juste en dessous
C'est pas français, je comprends pas.
Et comme l'a souligner Xenos, un script sans commentaires, sans indentation et ici, sans mise en page (grace aux balises MyBBcode [code][/code]), généralement on passe pas 10 minutes à essayer de le décrypter → on lit pas .

(20-11-2014, 06:28 PM)Assas175 a écrit : Alors
5 PV + 2 ptsAT = Mort [Image: smilies_mort019.gif]
5 Pv + (- 3PV) = mort ! [Image: smilies_mort019.gif]

O_o je suis quasiment sur que nous avons affaire à un Calcul Killeur

Faux ! apprends à lire une fois de +
et en relisant c'est toujours pareil. En français (car c'est un forum francophone) ta phrase n'est pas correcte par rapport à ce que tu souhaites faire.
Comme l'a bien dit Niahoo :
  • (20-11-2014, 07:01 PM)niahoo a écrit : Parce que « tu fait 2 attaque ou tu te prend 3 de riposte bah boom tes mort » comme tu ne mets pas le pluriel à "attaque" on peut croire que 2 c'est la valeur de l'attaque. Sinon on l'écrit en lettres ("deux"). Et "où" prend un accent sinon c'est "ou bien". Donc au lieu de t'énerver, apprends plutôt à écrire correctement en français. Ensuite apprends éventuellement à coder et ensuite tu pourras peut-être créer un jeu.

(20-11-2014, 06:28 PM)Assas175 a écrit : j'ai dis que tu avais 5 de vie ok ?! ( indice : 5 c'est juste entre 4 et 6 Wink )

tu fais deux attaques , où le gars te riposte dans la gueule 3 points

tu fais 5 degats à toto , qui riposte pour 3 degats
tu fais 7 degats à toto , qui riposte pour 3 degats

3+3 ? 6 ( c'est le numéro que je t'ai expliqué un peu plus haut ^^ )

5-6 ? Ça c'est un peu plus dure pour toi ça fait -1 , donc en gros 0 de vie , donc oui tu es mort Wink

Merci de t'abstenir de répondre la prochaine fois , je cherche des vrais réponses , pas des gens comme toi qui font que flooder pour se croire intéressant Wink
Apprends à
  • lire,
  • relire (te relire, mais aussi relire les autres) et enfin,
  • écrire en Français si tu veux de l'aide.
Apprends également le pluriels des noms (généralement c'est simple, pour 95% d'entres-eux, il faut ajouter un "s" à la fin Wink )

(20-11-2014, 09:56 PM)Assas175 a écrit : Ok même si à première vu j'ai rien compris dans tes calcules et que je pense que ce soit ce genre de calcule , ( fin je me comprends lol je ne sais pas comment expliquer ) cela mérite d'être lus car ça au moins c'est une réponse à mes attentes Smile

Pourtant je trouve cela moins compliqué que ton équation (addition ?) ou il fallait trouver/deviner quels étaient les unités (pts, pts xp, xp, pv, ... ) des valeurs.:heu:


pour la dictée, je ne peux te mettre que 0/40.
et pour te citer:
  • Citation : bah boom t'es mort




Moi je m’arrêtes là.
Bon courage et bonne continuation pour la suite quand même =) (ça s'appelle du faire-play)

Ps: j'ai remarquer que ton dernier poste contenait moins de fautes. Continue.


RE: Calcul de degat de combat tour par tour - Xenos - 21-11-2014

("sa me donne pas..." est ce qui me choquait le plus... ça serait mieux écrit avec un c)
Je ne vais pas me relancer dans l'expression de mon opinion quand aux développeurs qui font des fautes, mais écrire proprement aide beaucoup à structurer ses idées. La question n'est pas de gonfler les gens avec des accords et de la grammaire, mais bien de les aider à voir explicitement les liens qu'il y a entre deux idées/mots qu'ils expriment.

J'ai encore buté sur la phrase "tu fait 2 attaque ou tu te prend 3..." l'accent manque (même en sachant déjà ce qu'elle voulait dire, merci Niahoo, je n'aurai toujours pas compris sans toi ! XD).

Limitions le combat au jeu et ne nous mangeons pas trop le nez mutuellement (curieux hasard que je tombe sur cette musique, anglaise, qui colle à cette situation!).


RE: Calcul de degat de combat tour par tour - Bazooka - 23-12-2015

sympa de voir qu'on recopie ma formule et mes script JS de l'époque.


RE: Calcul de degat de combat tour par tour - Xenos - 23-12-2015

Si t'as un élément de preuve attestant qu'il s'agissait de tes formules et/ou de ton code, fais-le savoir et je dégage le sujet (le vol, c'est mal m'voyez).