In mijn werk (docent VMBO) wil ik als Kerstactiviteit een bingo gaan houden. Nu zijn er diverse scriptjes te vinden maar geen 1 werkt echt goed. Weet iemand zo'n script of sniplet om een bingo te kunnen houden
Functie:
* Een reeks getallen (zeg van 1 ... 100)
* Als ik op een knop druk wordt er een getal weergegeven
* Getal moet daarna niet nog een keer komen
Dus je hebt de 'Host' en de 'Spelers'.. Het is te maken.. En het is opzich een leuk idee om te maken.. Als je wilt dat ik iets voor je maak dan heb ik morgen wel tijd..
Dat zou perfect zijn !!
Ik weet niet of je dit bedoelt, maar dit zou je dan op een beamer kunnen projecteren.
ieder nummer komt maar 1 keer voor. voor de rest moeten de kids wel hun eigen dingen bij houden.
Ik kan er ook wel iets in maken dat je de nummers die geweest zijn kan terug kijken.
maar eerst deze:

<?php

/**
 * @author Nico Kaag
 * @copyright 2008
 */
error_reporting(E_ALL);
session_start();
if(!isset($_GET['order']))
{
	$_SESSION['list'] = range(1,100);
	shuffle($_SESSION['list']);
	echo '<a href="bingo.php?order=0">BEGINNEN</a>';
}
else
{
	$i = $_GET['order'];
	if($i == '99')
	{
		echo 'KLAAR!';
	}
	elseif($i < '100')
	{
		$i = $i+1;
		echo 'Nummer: <br />';
		echo $_SESSION['list'][$i];
		echo '<a href="bingo.php?order='. $i .'">VOLGENDE NUMMER</a>';
	}
	else
	{
		echo 'ERROR!';
	}
}

?>


Mmm werkt al goed. Het zou fijn zijn als de getrokken getallen zichtbaar blijven.

Maarre .... worden getallen niet dubbel getrokken want ik zie niet iets in de code wat dat checkt?
@Peter de M

Het script loopt door een array heen waarin de nummers 1 t/m 100 slechts 1 maal in voorkomen. Elk volgende item kan dus niet 1 van de voorgaande waarden bevatten.



<?php

/**
* @author Nico Kaag
* @copyright 2008
*/
error_reporting(E_ALL);
session_start();
if(!isset($_GET['order']))
{
$_SESSION['list'] = range(1,100);
shuffle($_SESSION['list']);
echo '<a href="bingo.php?order=0">BEGINNEN</a>';
}
else
{
$i = $_GET['order'];
if($i == '99')
{
echo 'KLAAR!';
}
elseif($i < '100')
{
$i = $i+1;
//voor weergave wat is geweest
echo 'Voorgaande getallen: ';
for($teller = 0;$teller <$i;$teller++){
echo $_SESSION['list'][$teller].' &nbsp; ';
}
echo '<br />Nummer: <br />';
echo $_SESSION['list'][$i];
echo '<a href="bingo.php?order='. $i .'">VOLGENDE NUMMER</a>';
}
else
{
echo 'ERROR!';
}
}

?>
Ik vind dit al fantastisch hoor en ben er al helemaal blij mee maar ik heb nog 2 dingen:
1. Bij de start worden al gelijk 2 getallen getrokken en geshowd
2. Zouden de voorgaande getallen gesorteerd weer gegeven kunnen worden

Jammer dat je dan weer sneller moet zijn =P
alleen ik had $teller $k genoemd en een <br /> gebruikt :P
overigens kan je voor dit nog best <font></font> gebruiken om de tekst grootte aan te passen, ik vind het een beetje overdreven om daarvoor helemaal een css aan te maken.
Maar als je ook wilt gaan positioneren, dan moet je wel weer CSS hebben :P
<?php

/**
* @author Nico Kaag
* @copyright 2008
*/
error_reporting(E_ALL);
session_start();
if(!isset($_GET['order']))
{
$_SESSION['list'] = range(1,100);
shuffle($_SESSION['list']);
echo '<a href="bingo.php?order=0">BEGINNEN</a>';
}
else
{
$i = $_GET['order'];
if($i == '99')
{
echo 'KLAAR!';
}
elseif($i < '100')
{
//voor weergave wat is geweest
echo 'Voorgaande getallen: ';
for($teller = 0;$teller <$i;$teller++){
echo $_SESSION['list'][$teller].' &nbsp; ';
}
echo '<br />Nummer: <br />';
echo $_SESSION['list'][$i];
$i++;
echo '<a href="bingo.php?order='. $i .'">VOLGENDE NUMMER</a>';
}
else
{
echo 'ERROR!';
}
}

?>

eerste probleem opgelost, ben nu bezig met de 2e, maar die kan je niet zo 1, 2, 3 sorteren
Nico,

Harstikke bedankt, font etc red ik wel ... perfect !
<?php

/**
* @author Nico Kaag
* @copyright 2008
*/

error_reporting(E_ALL);
session_start();
if(!isset($_GET['order']))
{
$_SESSION['list'] = range(1,100);
shuffle($_SESSION['list']);
$_SESSION['voorgaand'] = array();
echo '<a href="bingo.php?order=0">BEGINNEN</a>';
}
else
{
$i = $_GET['order'];
if($i == '99')
{
echo 'KLAAR!';
}
elseif($i < '100')
{
$i = $i+1;
//voor weergave wat is geweest, is niet getest maar als het goed is dan moet er nu worden gesorteerd.
if(!empty($_SESSION['voorgaand'])){
sort($_SESSION['voorgaand']);
echo 'Voorgaande getallen: '.implode(', ',$_SESSION['voorgaand']);
}
echo '<br />Nummer: <br />';
echo $_SESSION['list'][$i];

echo '<a href="bingo.php?order='. $i .'">VOLGENDE NUMMER</a>';
$_SESSION['voorgaand'][] = $_SESSION['list'][$i];
}
else
{
echo 'ERROR!';
}
}

?>

edit

ik had net nog een foutje erin zitten, nu sorteert die wel.

Reageren