宾果游戏:生成的宾果卡上抽取数字的颜色table格
Bingo game: color table cells of drawn numbers on the generated bingo card
我有一个简单的宾果游戏,其中从池中抽取随机数,然后检查它们是否在随机生成的 6x6 宾果卡上。
在宾果卡的第 7 列和第 7 行中,脚本计算在该行或该列中找到了多少个抽奖号码。当一行或一列的数字都被抽出后,第7行或第7列的格子就会有6,当达到6时,就有bingo了。
到目前为止这似乎有效。我必须添加的最后一件事是导致宾果游戏的行或列中的单元格的绿色背景。参见示例:
现状:
我还必须隐藏第 7 列和第 7 行。它们不应该显示在屏幕上。
您有什么建议可以给已达到宾果游戏的 row/column 背景色吗?
我怎样才能从屏幕上隐藏第 7 列和第 7 行?
我当前的代码:
<html>
<body>
<?php
// Seeding
mt_srand((double)microtime()*1000000);
// generate numbers for the bingo card
function generateCard()
{
$card = array();
for ($row = 1; $row < 7; ++$row)
{
$card[$row] = array();
$deck = array(0,1,2,3,4,5,6,7,8,9);
// add 6 numbers to the row
for ($rownumber = 0; $rownumber < 6; ++$rownumber) {
// Random index
$index = mt_rand(0,count($deck) - 1);
// Random number from $deck
$number = $deck[$index];
// add row to random number (e.g. row 1 and number 8 = 18)
$card[$row][] = $row . $number;
// take out current random number so it wont be drawn again
unset($deck[$index]);
// Reset the index of $deck, so no unset is chosen
$deck = array_values($deck);
}
// Last column
$card[$row][] = 0;
}
// Last row
for ($col = 0; $col < 6; ++$col){
$card[7][$col] = 0;
}
return $card;
}
$card = generateCard();
// Print card
function printCard($card){ ?>
<table border="1" cellspacing="0" cellpadding="5">
<?php foreach ($card as $index => $rij) { ?>
<tr>
<?php foreach ($rij as $columnIndex => $number) { ?>
<td><?php echo $number ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
<?php }
$getrokkenGetallen = array();
$deck = range(10,69);
$bingo = false;
// Keep drawing numbers till bingo is true
while (!$bingo){
$index = mt_rand(0,count($deck) - 1);
$number = $deck[$index];
if(!in_array($number, $getrokkenGetallen)){
unset($deck[$index]);
$deck = array_values($deck);
$getrokkenGetallen[] = $number;
// Check if number is on the card
for ($row = 0; $row < 7; $row++) {
for ($rownumber = 0; $rownumber < 7; $rownumber++) {
if(isset($card[$row][$rownumber])){
if ($card[$row][$rownumber] == $number) {
// set color?
$card[$row][6] += 1; // Increment col
$card[7][$rownumber] += 1; // Increment row
}
}
}
}
}
// check if the 7th column or row contains 6 positive draws (5 for testing)
if(in_array(6, $card[$row]) || in_array(6, $card[$rownumber])){
$bingo = true;
}
}
if($bingo){
printCard($card);
echo '<p>Drawn numbers are:<br>';
foreach($getrokkenGetallen as $value)
{
echo $value . ' ';
}
echo '</p>';
echo '<p>Times drawn: ';
echo count($getrokkenGetallen);
echo '</p>';
}
?>
</body>
</html>
如果您想查看代码的运行方式,代码应该可以像粘贴时那样工作。在此先感谢您的帮助或建议!
此代码有效:
function printCard($card){ ?>
<table border="1" cellspacing="0" cellpadding="5">
<?php
$row = 0;
foreach ($card as $index => $rij)
{
$row++;
if ($row < 7)
{?>
<tr>
<?php
$column = 0;
foreach ($rij as $columnIndex => $number)
{
$column++;
if ($column < 7)
{ ?>
<td<?php if (($rij[6]==6) || ($card[7][$column-1] ==6)) { echo ' style="background-color:green"'; } ?>><?php echo $number ?></td>
<?php }
}
} ?>
</tr>
<?php
} ?>
</table>
<?php }
我不得不更改这部分代码,因为它没有正确检查宾果游戏:
// Keep drawing numbers till bingo is true
while (!$bingo){
$index = mt_rand(0,count($deck) - 1);
$number = $deck[$index];
if(!in_array($number, $getrokkenGetallen)){
unset($deck[$index]);
$deck = array_values($deck);
$getrokkenGetallen[] = $number;
// Check if number is on the card
for ($row = 0; $row < 7; $row++) {
for ($rownumber = 0; $rownumber < 7; $rownumber++) {
if(isset($card[$row][$rownumber])){
if ($card[$row][$rownumber] == $number) {
// set color?
$card[$row][6] += 1; // Increment col
$card[7][$rownumber] += 1; // Increment row
// check if the 7th column or row contains 6 positive draws (5 for testing)
if(($card[$row][6] == 6) || ($card[7][$rownumber] == 6)){
$bingo = true;
}
break;
}
}
}
}
}
}
检查宾果游戏的最佳位置是增加行和列的位置。那个时候有一个行或列达到6的可能性。
我有一个简单的宾果游戏,其中从池中抽取随机数,然后检查它们是否在随机生成的 6x6 宾果卡上。
在宾果卡的第 7 列和第 7 行中,脚本计算在该行或该列中找到了多少个抽奖号码。当一行或一列的数字都被抽出后,第7行或第7列的格子就会有6,当达到6时,就有bingo了。
到目前为止这似乎有效。我必须添加的最后一件事是导致宾果游戏的行或列中的单元格的绿色背景。参见示例:
现状:
我还必须隐藏第 7 列和第 7 行。它们不应该显示在屏幕上。
您有什么建议可以给已达到宾果游戏的 row/column 背景色吗? 我怎样才能从屏幕上隐藏第 7 列和第 7 行?
我当前的代码:
<html>
<body>
<?php
// Seeding
mt_srand((double)microtime()*1000000);
// generate numbers for the bingo card
function generateCard()
{
$card = array();
for ($row = 1; $row < 7; ++$row)
{
$card[$row] = array();
$deck = array(0,1,2,3,4,5,6,7,8,9);
// add 6 numbers to the row
for ($rownumber = 0; $rownumber < 6; ++$rownumber) {
// Random index
$index = mt_rand(0,count($deck) - 1);
// Random number from $deck
$number = $deck[$index];
// add row to random number (e.g. row 1 and number 8 = 18)
$card[$row][] = $row . $number;
// take out current random number so it wont be drawn again
unset($deck[$index]);
// Reset the index of $deck, so no unset is chosen
$deck = array_values($deck);
}
// Last column
$card[$row][] = 0;
}
// Last row
for ($col = 0; $col < 6; ++$col){
$card[7][$col] = 0;
}
return $card;
}
$card = generateCard();
// Print card
function printCard($card){ ?>
<table border="1" cellspacing="0" cellpadding="5">
<?php foreach ($card as $index => $rij) { ?>
<tr>
<?php foreach ($rij as $columnIndex => $number) { ?>
<td><?php echo $number ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
<?php }
$getrokkenGetallen = array();
$deck = range(10,69);
$bingo = false;
// Keep drawing numbers till bingo is true
while (!$bingo){
$index = mt_rand(0,count($deck) - 1);
$number = $deck[$index];
if(!in_array($number, $getrokkenGetallen)){
unset($deck[$index]);
$deck = array_values($deck);
$getrokkenGetallen[] = $number;
// Check if number is on the card
for ($row = 0; $row < 7; $row++) {
for ($rownumber = 0; $rownumber < 7; $rownumber++) {
if(isset($card[$row][$rownumber])){
if ($card[$row][$rownumber] == $number) {
// set color?
$card[$row][6] += 1; // Increment col
$card[7][$rownumber] += 1; // Increment row
}
}
}
}
}
// check if the 7th column or row contains 6 positive draws (5 for testing)
if(in_array(6, $card[$row]) || in_array(6, $card[$rownumber])){
$bingo = true;
}
}
if($bingo){
printCard($card);
echo '<p>Drawn numbers are:<br>';
foreach($getrokkenGetallen as $value)
{
echo $value . ' ';
}
echo '</p>';
echo '<p>Times drawn: ';
echo count($getrokkenGetallen);
echo '</p>';
}
?>
</body>
</html>
如果您想查看代码的运行方式,代码应该可以像粘贴时那样工作。在此先感谢您的帮助或建议!
此代码有效:
function printCard($card){ ?>
<table border="1" cellspacing="0" cellpadding="5">
<?php
$row = 0;
foreach ($card as $index => $rij)
{
$row++;
if ($row < 7)
{?>
<tr>
<?php
$column = 0;
foreach ($rij as $columnIndex => $number)
{
$column++;
if ($column < 7)
{ ?>
<td<?php if (($rij[6]==6) || ($card[7][$column-1] ==6)) { echo ' style="background-color:green"'; } ?>><?php echo $number ?></td>
<?php }
}
} ?>
</tr>
<?php
} ?>
</table>
<?php }
我不得不更改这部分代码,因为它没有正确检查宾果游戏:
// Keep drawing numbers till bingo is true
while (!$bingo){
$index = mt_rand(0,count($deck) - 1);
$number = $deck[$index];
if(!in_array($number, $getrokkenGetallen)){
unset($deck[$index]);
$deck = array_values($deck);
$getrokkenGetallen[] = $number;
// Check if number is on the card
for ($row = 0; $row < 7; $row++) {
for ($rownumber = 0; $rownumber < 7; $rownumber++) {
if(isset($card[$row][$rownumber])){
if ($card[$row][$rownumber] == $number) {
// set color?
$card[$row][6] += 1; // Increment col
$card[7][$rownumber] += 1; // Increment row
// check if the 7th column or row contains 6 positive draws (5 for testing)
if(($card[$row][6] == 6) || ($card[7][$rownumber] == 6)){
$bingo = true;
}
break;
}
}
}
}
}
}
检查宾果游戏的最佳位置是增加行和列的位置。那个时候有一个行或列达到6的可能性。