Random selon un % de chances
Bonjour, j'aimerais savoir s'il est possible en PHP d'avoir un random dépendant d'un % de chance.
Par exemple, pour un jeu, si l'on dit que le monstre M a 50% chances de donner l'item 1, 25% chance de donner l'item 2 et 0,1% chance de donner l'item 3.
Donc:
50% - 1
25% - 2
0,1% - 3
L'item 1 a le plus de chance d'être donné car il a le plus haut %.
Pour le moment j'avais pensé me faire une table qui ressemblerait à cela:
Code:
1 2 3 4 5
|
monstre -- item -- prc
M 1 50
M 2 25
M 3 0.1 |
et dans mon code j'aurais fais quelque chose comme...
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
$drop = array();
foreach($itemSQL as $item)
{
for($i=0;$i<=$item['prc'];$i++)
{
array_push($drop, $item['item']);
}
}
$randDrop = rand(0,count($drop));
$currDrop = $drop[$randDrop]; |
mais il doit bien y exister une autre méthode plus efficace? :?
Merci d'avance
EDIT: De plus, ma méthode ne gère pas les 0,1% a moins de multiplier le tout par 10 et la... c'est encore pire :S (750 données dans un tableau, bien que rapide, je ne crois aucunement que ce soit saint ^^)