la précision des armes PHP jeu
Question
Je suis en train de trouver un moyen pour les joueurs de tirer leurs armes et ne frapper un certain pourcentage. Par exemple, une arme à feu ne peut frapper 70% du temps, tandis qu'un autre ne touche que 34% du temps.
Jusqu'à présent, tout ce que je pourrait trouver est pondéré en fonction des tableaux.
Tentative 1:
private function weighted_random(&$weight)
{
$weights = array(($weight/100), (100-$weight)/100);
$r = mt_rand(1,1000);
$offset = 0;
foreach($weights as $k => $w)
{
$offset += $w*1000;
if($r <= $offset)
return $k;
}
}
Tentative 2:
private function weapon_fired(&$weight)
{
$hit = array();
for($i = 0; $i < $weight; $i++)
$hit[] = true;
for($i = $weight; $i < 100; $i++)
$hit[] = false;
shuffle($hit);
return $hit[mt_rand(0,100)];
}
Il ne semblent que les joueurs frappent les pourcentages corrects, mais je ne suis pas vraiment sûr pourquoi.
Toutes les idées ou suggestions? Quelque chose ne va pas avec ces aveuglante?
Merci
La solution
private function weapon_fired($weight)
{
return mt_rand(0, 99) < $weight;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow