Scripts

Hoger / Lager

Ik heb de laatste tijd verschillende Hoger / Lager scripts op PHPhulp gezien, maar die waren naar mijn mening niet echt goed geprogrammeerd. Daarom heb ik besloten de scriptbibliotheek uit te breiden met mijn Hoger / Lager. Commentaar is altijd welkom!

hogerlager.php
<?php
/* Hoger / Lager script door Roel - 29/03/2011 */
session_start();

$getalMin = 1; // Het laagste getal waartussen gekozen wordt
$getalMax = 100; // Het hoogste getal waartussen gekozen wordt
$rijMax = 5; // Aantal getallen per rij

echo '<h2>Hoger / Lager</h2>';

if (isset($_SESSION['getallen'])) {
		// Het spel is bezig, controleer of er geklikt is
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
				$_SESSION['getallen'][] = rand($getalMin, $getalMax); // Nieuw getal aanmaken
				if (isset($_POST['hoger'])) {
						// Er is op hoger geklikt, controleer of het getal ook hoger was
						$goedgegokt = ($_SESSION['getallen'][count($_SESSION['getallen']) - 1] >= $_SESSION['getallen'][count($_SESSION['getallen']) - 2]) ? 1 : 0;
				} else {
						// Er is op lager geklikt, controleer of het getal ook lager was
						$goedgegokt = ($_SESSION['getallen'][count($_SESSION['getallen']) - 1] <= $_SESSION['getallen'][count($_SESSION['getallen']) - 2]) ? 1 : 0;
				}
				if ($goedgegokt) {
						echo '<span style="color:green; font-weight: bold">Je hebt het getal goed geraden!</span>';
				} else {
						echo '<span style="color:red; font-weight: bold">Je hebt het getal fout geraden! Het getal was '.$_SESSION['getallen'][count($_SESSION['getallen']) - 1].'!</span>';
						unset($_SESSION['getallen']);
						$foutgegokt = 1;
				}
		}
} else {
		// Het spel is niet bezig, kijk of het gestart wordt en start spel wanneer er gepost is
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
				$_SESSION['getallen'] = array();
				$_SESSION['getallen'][] = rand($getalMin, $getalMax);
		}
}

if (isset($_SESSION['getallen'])) {
		// Weergeef de tabel met de getallen
		echo '<table cellpadding="10">';
		for ($i = 0; $i < count($_SESSION['getallen']); $i++) {
				if ($i == 0 || $i % $rijMax == 0) {
						echo '<tr>';
				}
				echo '<td style="font-size: 25px; text-align: center">'.(($i == count($_SESSION['getallen']) - 1) ? '<span style="color:blue">'.$_SESSION['getallen'][$i].'</span>' : $_SESSION['getallen'][$i]).'</td>';
				if ($i == count($_SESSION['getallen']) - 1 || $i % $rijMax == ($rijMax - 1)) {
						echo '</tr>';
				}
		}
		echo '</table>';
		// Einde tabel en weergeef statistieken
		echo '<fieldset><legend>Statistieken</legend>
		<b>Aantal goed:</b> '.(count($_SESSION['getallen']) - 1).'</fieldset>';
		if (!isset($goedgegokt) || $goedgegokt) {
				echo '<form method="post" action=""><p><input type="submit" name="hoger" value="Hoger" /> <input type="submit" name="lager" value="Lager" /></p></form>';
		}
} else {
		// Het spel is niet gestart, weergeef een formulier
		echo '<form method="post" action=""><p>Hoe ver kom jij? Klik en vindt het uit!<br /><br /><input type="submit" value="Start het spel!" /></p></form>';
}
?>

Reacties

0
Nog geen reacties.