Я создал систему бросков, которая будет выбирать случайный шанс на основе 3 шансов.
Мой код такой
function chance($input=array())
{
echo 'The Max Value can be: '.(array_sum($input)*10).'<br>';
$number=rand(0,array_sum($input)*10);
echo 'Checking for: '.$number.'<br>';
$starter=0;
foreach($input as $key => $val)
{
$starter+=$val*10;
echo 'Current value being tested against is: '.$starter.' which is '.$key.'<br>';
if($number<=$starter)
{
$ret=$key;
break;
}
}
return 'Winner is '.$ret.'';
}
$array=array('black' => 15.30, 'brown' => 20.20, 'kitty' => 15.30, 'lala' => 15.20, 'popi' => 14.00, 'usher' => 20.00);
for($i=0;$i<3;$i++)
{
echo chance($array).'<br><br>';
}
создаст вывод, подобный этому
The Max Value can be: 1000
Checking for: 797
Current value being tested against is: 153 which is black
Current value being tested against is: 355 which is brown
Current value being tested against is: 508 which is kitty
Current value being tested against is: 660 which is lala
Current value being tested against is: 800 which is popi
Winner is popi
The Max Value can be: 1000
Checking for: 219
Current value being tested against is: 153 which is black
Current value being tested against is: 355 which is brown
Winner is brown
The Max Value can be: 1000
Checking for: 709
Current value being tested against is: 153 which is black
Current value being tested against is: 355 which is brown
Current value being tested against is: 508 which is kitty
Current value being tested against is: 660 which is lala
Current value being tested against is: 800 which is popi
Winner is popi
Код работает отлично, но есть некоторые ошибки в победителях. В этом случае ПОПИ побеждает дважды.
Я хочу получить 3 случайных победителя без повторения предыдущего победителя.
например, если пользователь POPI уже выиграл в первом броске, он не сможет выиграть снова в следующем броске. Таким образом, пользователь не может выиграть дважды в броске.