Scripts
Mastermind
Iemand zocht mastermind. Dus heb ik dit ff in mekaar geflanst. De plaatjes zijn te downloaden, zie de link hieronder ergens. Je kunt de plaatjes uiteraard gewoon zelf maken, het zijn gewoon gekleurde vierkantjes. Je kunt het bestand noemen zoals je wilt. Kleuren kunnen meerdere malen voorkomen Zwart is: kleur zit erin op de goede plaats Wit is: kleur zit erin maar staat niet op de goede plaats Veel plezier!! PS: Het hele zootje in een zip: Klik edit: Je kunt kleuren toevoegen door een nieuw plaatje te maken (bijv. pimpelpaars.bmp) en dan in de array 'kleuren' het parameter 'pimpelpaars' toe te voegen.
mastermind
[code]<?php session_start();
//error_reporting(E_ALL);
$kleuren = array("", "blauw", "bruin", "geel", "groen", "paars", "rood", "oranje", "roze"); // alle kleuren in array pleuren
?>
<html>
<head>
<title>Mastermind</title>
</head>
<body>
<script language="JavaScript">
function changeColor(id)
{
kleur = document.getElementById('select'+id).value;
document.getElementById('bol'+id).src = kleur+".bmp";
}
</script>
<?php // javascriptje maken voor het verkleuren van rondjes
if(!isset($_SESSION['code'])) // als er nog geen code is...
{
// ...een nieuwe code maken
array_shift($kleuren);
$kleurtjes = $kleuren;
array_unshift($kleuren, '');
$keys = array_rand($kleurtjes, 4); // random 4 keys uit de array halen
$code[] = ''; // het eerste ding van de array is leeg
for($i = 0; $i < count($keys); $i++) // voor elke key de waarde selecteren en in de code stoppen
{
$code[] = $kleurtjes[$keys[$i]];
}
$_SESSION['code'] = $code; // de code in de session stoppen
}
if($_SERVER['REQUEST_METHOD'] == "POST") // als je een combinatie post
{
$denkt = array('', $_POST['select1'], $_POST['select2'], $_POST['select3'], $_POST['select4']);
if(count(array_unique($denkt)) < 5)
{
echo '<b>Je mag geen dubbelen gebruiken!</b><br /><br />';
}
else
{
$zwarte = 0; // aantal zwarte en witte op 0
$witte = 0;
// de gekozen combinatie in een array stoppen
for($i = 1; $i <= 4; $i++) // het aantal zwarte berekenen
{
if($_SESSION['code'][$i] == $denkt[$i])
{
$zwarte++;
}
elseif(in_array($denkt[$i], $_SESSION['code']) && $_SESSION['code'][$i] != $denkt[$i]) // als de kleur erin zit maar niet op die plaats
{
$witte++;
}
}
array_push($denkt, $zwarte, $witte); // aantal zwarte en witte in array stoppen
$_SESSION['gehad'][] = $denkt; // in session stoppen wat de kleuren waren
if($zwarte == 4) // als je 4 zwarte heb, ofwel je heb alles goed
{
echo 'Gefeliciteerd! Je hebt de juiste combinatie achterhaald in '.count($_SESSION['gehad']).' pogingen!!<br /><br />
'; // vertel dat het goed is en in hoeveel pogingen het geraden is
for($i = 1; $i <= 4; $i++) // laat de juiste combinatie zien
{
echo '
<img src="'.$denkt[$i].'.bmp" id="bol'.$i.'" alt="Bolletje '.$i.'" />';
}
unset($_SESSION['code']); // leeg alle variabelen zodat er weer opnieuw gespeeld kan worden
unset($_SESSION['gehad']);
unset($_POST);
echo '<br /><br />
<a href="'.$_SERVER['PHP_SELF'].'">Nog een keer spelen!</a>'; // laat een link zien om nog een keer te spelen
exit(); // stop het uitvoeren van het script
}
}
}
else // als je niets post...
{
$denkt = array('', 'blauw', 'bruin', 'geel', 'groen');
}
echo 'Dit is poging nummer '.(count($_SESSION['gehad'])+1).'<br /><br />
';
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">'; // gooi een formulier neer voor het raden van de kleuren
for($i = 1; $i <= 4; $i++) // 4 keer een selectmenu met alle kleuren
{
echo '
<select name="select'.$i.'" id="select'.$i.'" onchange="changeColor('.$i.');">';
for($g = 1; $g < count($kleuren); $g++) // pleur alle kleuren neer
{
echo '
<option value="'.$kleuren[$g].'"';
if($denkt[$i] == $kleuren[$g])
{
echo ' selected="selected"';
}
echo '>'.$kleuren[$g].'</option>';
}
echo '
</select>';
}
echo '
<input type="submit" value="Raad!" />
</form>'; // sluit formulier af
for($i = 1; $i <= 4; $i++) // gooi bolletjes neer om te laten zien welke kleuren je hebt gekozen
{
echo '
<img src="'.$denkt[$i].'.bmp" id="bol'.$i.'" alt="Bolletje '.$i.'" />';
}
if(isset($_SESSION['gehad'])) // laat alle combi's zien die geprobeerd zijn
{
echo '<br /><br />
Je hebt de volgende combinaties al gehad:<br /><br />
<table border="1">
<tr>
<th> </th>
<th>Input</th>
<th>Output</th>
</tr>';
for($i = (count($_SESSION['gehad'])-1); $i >= 0; $i--)
{
echo '
<tr>
<td>'.($i+1).'</td>
<td>';
$n = 0;
for($g = 1; $g <= 4; $g++)
{
echo '
<img src="'.$_SESSION['gehad'][$i][$g].'.bmp" alt="Bolletje '.$g.'" />';
}
echo '
</td>
<td>';
for($c = 0; $c < $_SESSION['gehad'][$i][5]; $c++)
{
echo '
<img src="zwart.bmp" alt="Zwart bolletje">';
$n++;
}
for($c = 0; $c < $_SESSION['gehad'][$i][6]; $c++)
{
echo '
<img src="wit.bmp" alt="Wit bolletje">';
$n++;
}
for($c = $n; $c < 4; $c++)
{
echo '
<img src="geen.bmp" alt="Geen bolletje">';
}
echo '
</td>
</tr>';
}
echo '
</table>';
}
echo '
</body>
</html>'; // sluit het document af
?>[/code]
Reacties
0