J'éviterais d'avoir une addition simple si l'intervalle de valeur est pas fixe.
parce que sinon on va avoir bcp d'aléatoire à bas niveau: $att et $adv seront plutot faible; alors qu'à haut niveau ces valeurs seront bcp plus élevé et ton facteur additif lui qui n'a pas bougé devient tout petit en comparaison.
$dégats_totaux = ($attaque_joueur - $defense_adversaire)* $aléatoire
ça peut très bien fonctionner; à condition de choisir correctement l'interval de aléatoire^^
vu ta remarque j'en déduis que ton aléatoire est toujours positif... pourquoi ?
rien t'interdis de prendre des valeurs négatives: $aléatoire = rand(-5,5)
bon j'éviterais un intervalle équilibré; parce que là autant jouer à pile ou face (les joueurs de haut niveau apprécieraient moyen de voir que tous les combats sont à 50/50 ; sans compter que là on a des situation ridicule; si les attaque et def_adv sont égale; le combat sera toujours nul ).
un truc du genre $aléatoire = rand(-30,70)/100. Et tu rajoute un biais sur la formule de base: ($attaque_joueur - $defense_adversaire * $biais) * $aleatoire
$biais = (100 + rand(-10,10)) /100 (un biais aléatoire de 10% )
Enfin à toi de peaufiner ta formule (des chance que dans cette formule tu puisse faire apparaitre des carac de joueur, leur diff de niveau ou que sais-je)
la logique voudrait quand même que pour ce genre de détail tu parte du gameplay de ton jeu -condition que tu pose-:
- je veux que l'attaque et la défense soient équilibrée (ou à l'inverse favoriser l'attaque?la défense?)
- je veux que dans un combat le plus faible ait toujours au minimum 5% de chance de gagner
- je veux que les dégats soit au max de 50% des pv de la cible (pas de oneshoot)
- ...
pour ensuite rechercher la formule qui le fait.
parce que sinon on va avoir bcp d'aléatoire à bas niveau: $att et $adv seront plutot faible; alors qu'à haut niveau ces valeurs seront bcp plus élevé et ton facteur additif lui qui n'a pas bougé devient tout petit en comparaison.
$dégats_totaux = ($attaque_joueur - $defense_adversaire)* $aléatoire
ça peut très bien fonctionner; à condition de choisir correctement l'interval de aléatoire^^
vu ta remarque j'en déduis que ton aléatoire est toujours positif... pourquoi ?
rien t'interdis de prendre des valeurs négatives: $aléatoire = rand(-5,5)
bon j'éviterais un intervalle équilibré; parce que là autant jouer à pile ou face (les joueurs de haut niveau apprécieraient moyen de voir que tous les combats sont à 50/50 ; sans compter que là on a des situation ridicule; si les attaque et def_adv sont égale; le combat sera toujours nul ).
un truc du genre $aléatoire = rand(-30,70)/100. Et tu rajoute un biais sur la formule de base: ($attaque_joueur - $defense_adversaire * $biais) * $aleatoire
$biais = (100 + rand(-10,10)) /100 (un biais aléatoire de 10% )
Enfin à toi de peaufiner ta formule (des chance que dans cette formule tu puisse faire apparaitre des carac de joueur, leur diff de niveau ou que sais-je)
la logique voudrait quand même que pour ce genre de détail tu parte du gameplay de ton jeu -condition que tu pose-:
- je veux que l'attaque et la défense soient équilibrée (ou à l'inverse favoriser l'attaque?la défense?)
- je veux que dans un combat le plus faible ait toujours au minimum 5% de chance de gagner
- je veux que les dégats soit au max de 50% des pv de la cible (pas de oneshoot)
- ...
pour ensuite rechercher la formule qui le fait.