【发布时间】:2013-08-20 11:38:37
【问题描述】:
我有这两个功能:
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;
} ?>
但卡片中仍有双随机数。 在过去的两周里,我尝试了其他一些想法,但我无法让它一起工作。 如果一件事成功,另一件事就会失败。
我可以获取随机数,但不能获取卡片中的唯一随机数。 我希望有一个人可以帮助我。 (更多信息:这是一个宾果游戏。所以drawedNumber()是被绘制的“球” 并存储在数组 $drawnNumbers 中,它们也是唯一的随机数。 fillCard() 是 填充宾果卡并检查 $drawNumber 是否在 $card 中的函数)
如果有人能告诉我如何让它工作,我将不胜感激。也许在 一种算法方式还是一些代码? 提前谢谢你。
【问题讨论】:
-
你只是想画一个数字网格,0-80/90,还是想画玩家玩的牌?
标签: php