PHP Oyunu silah doğruluk

0 Cevap php

Ben onların silah ateş oyuncular için bir yol ile gelip çalışıyor ve sadece belli bir yüzdesi için vuruldum. Diğeri sadece zaman% 34 isabet ederken Örneğin, bir tabanca, yalnızca zaman% 70 isabet edebilir.

Şimdiye kadar ben ile gelebilir tüm ağırlıklı diziler olduğunu.

Teşebbüs 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;
        }
    }

Denemesi 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)];
    }

Bu seem oyuncuları doğru yüzdeleri isabet etmediğini ama neden gerçekten emin değilim.

Herhangi bir fikir veya öneriniz? Bunlarla ışıl ışıl yanlış bir şey mi?

Teşekkürler

0 Cevap