JeuWeb - Crée ton jeu par navigateur
Fonction de jet - 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 : Fonction de jet (/showthread.php?tid=3109)

Pages : 1 2


Fonction de jet - Barbary - 28-09-2008

J'ai fait une fonction de jet, elle va de 1 à 100 au pif, et il y a moyen de faire rater le jet:
Code PHP :
<?php
// Version 1
function get_jet($pourcent_chances, $malus=false)
{
// Si le malus est activé, la personne ratera automatiquement ses jets.
if($malus){
$pourcent_chances++;
$jet= mt_rand($pourcent_chances, 100);
}
// Sinon , on prend un nombre au pif entre 1 et 100.
else{
$jet= mt_rand(1, 100);
}

return
$jet;
}

//Version 2
function get_jet($pourcent_chances, $malus=false)
{
// Si le malus est activé, la personne ratera automatiquement ses jets (je rajoute 1 au jet pour éviter qu'il tombe pile sur son pourcentage de chance) sinon c'est un jet normal
$malus==true ? $pourcent_chances++ : $pourcent_chances= 1;
// On retourne l'opération.
return mt_rand($pourcent_chances, 100);
}

echo
get_jet(95, true);
echo
'<br />';
echo
get_jet(95, false);
echo
'<br />';
echo
get_jet(26, false);
?>

Je vous ai mis les tests avec Smile


RE: Fonction de jet - phenix - 28-09-2008

Pour sélectionner un nombre au hasard, on utilise la fonction mt_rand qui est 4 fois plus rapide que rand.

De même ton système malus peut être simplifier. en plus avec ce système tu risque un jour de demander mt_rand(101,100) ce qui a peux de chance de marcher...

je propose sa comme correction Wink
Code PHP :
<?php 
function get_jet($malus=false)
{
// Si le malus est activé, la personne ratera automatiquement ses jets.
if($malus){
$jet= 100; //100 sera toujours un échec normalement...
}
// Sinon , on prend un nombre au pif entre 1 et 100.
else{
$jet= rand(1, 100);
}

return
$jet;
}



RE: Fonction de jet - Argorate - 28-09-2008

Je confirme que le mt_rand() est bien meillieur...

Sinon pourquoi malus <=> rater?

on peut avoir un malus qui diminue les chance de réussir, sans pour autant rater forcément...


RE: Fonction de jet - Barbary - 28-09-2008

Déjà sur mon jeu on calcule un % de chance pour des actions (illégales ou autres) sur 100, on fait en sorte de le % de chances ne dépasse pas 95% et si par exemple le joueur fait de l'anti-jeu (par exemple qu'il tape tout les nouveaux, insulte tout le monde sur le forum, etc...) on active un certain nombre de malus qui sont stocké dans un champ dans la table de perso et à chaque fois qu'un malus est utilisé, ça se décompte. Donc à chaques malus il va rater ses jet, et mettre 100 comme jet (en tout cas dans mon jeu) permet d'avoir un echec critique (on arrive pas ça faire l'action mais on ne perd pas tout quoi). Et puis si le gars fait trois fois de suite des jets de 100 ça va le saouler ^^

Merci pour le mt_rand(), je savais pas trop laquelle utiliser Smile


RE: Fonction de jet - Barbary - 28-09-2008

Pas mal aussi, mais il faut faire +1 à pourcent de chances pour être sur que le gars se rate sinon il arrivera quand même à réussir.
Après chacun adapte comme il veut hein Wink
Je voulais surtout donner une idée de concept Smile


RE: Fonction de jet - Barbary - 28-09-2008

ouais mais faut que le joueur crois que c'est de la malchance ^^


RE: Fonction de jet - Barbary - 28-09-2008

Non mais j'affiche le pourcentage de chances plus le jet, genre:
Action réussie !
Vous avez réussi à voler 1 épée à Barbary
(76% --> jet 76)


RE: Fonction de jet - Barbary - 28-09-2008

elle renvois le résultat du jet et je récupére le nombre que je traite après avec ma page qui gére les ordres du jeu, le +1 c'est parceque si le type a 75% de chances de réussir et qu'il fait un jet de 75 ça va faire une action réussie alors que je ne veux pas qu'il réussisse cette action justement :/
C'est complexe je sais je m'y perd des fois ^^


RE: Fonction de jet - Melimelo - 28-09-2008

Je comprend pas la logique de ton jet, on dirait que le pourcentage c'est le pourcentage de rater ...

C'est vraiment n'importe quoi Big Grin


RE: Fonction de jet - Barbary - 28-09-2008

^^
Meuh nan, on peut juste choisir de faire rater le jet à un joueur si il a fait de l'anti-jeu ou bien de faire un jet normal. :p
J'ai mis une version un peux plus optimisée avec du ternaire.