我有这两个功能:
function drawNumber($drawnNumbers){
$unique = true;
while ($unique == true){
$number = mt_rand(10, 69);
if (!in_array($number, $drawnNumbers)){
return $number;
$unique = false;
}
}
}
fillCard(); ?>
这是一个宾果游戏。卡片充满随机数。但我不能这样:
column column column column column column
row 10 13 16 14 16 19
row 24 26 28 29 23 21
row 36 33 39 30 31 35
row 46 48 42 45 43 47
row 59 56 51 52 58 50
row 60 65 68 62 61 67
所以我希望第一行的数字从 10 到 19,第二行的数字从 20 到 29,依此类推。
我试过这样
<?php drawnNumber(): $number = mt_rand(0,9);
fillArray(): $number = $row . $number; ?>
但这不起作用,因为卡上有双数。
因此,在此之前,我使用 in_array 以不同的方式进行了尝试:
<?php
function fillCard(){
$card = array();
/* fill card with random numbers */
for($i = 0, $min = 10, $max = 19; $i < 6; $i++, $min+=10, $max += 10)
{
for($j = 0; $j < 6; $j++)
{
$number = mt_rand($min,$max) ;
if(!in_array($number, $card){
$card['row' . $i]['column' . $j]['number'] = $number;
$card['row' . $i]['column' . $j]['found'] = 0;
}
}
}
var_dump($card);
return $card;
} ?>
但是卡中仍然有双随机数。在过去的两周里,我尝试了其他一些想法,但我无法让它一起工作。如果一件事成功,另一件事就会失败。
我可以获得随机数,但不能获得卡中的唯一随机数。我希望有一个人可以帮助我。(额外信息:这是一个宾果游戏。所以drawnNumber()是“球”,它们被绘制并存储在数组$drawnNumbers中,它们也是唯一的随机数。fillCard()是填充宾果卡的函数,并且检查 $drawNumber 是否在 $card 中)
如果有人能告诉我如何让它工作,我将不胜感激。也许以算法方式或一些代码?先感谢您。