Eindopdracht: Galgje

Opdracht: Maak een werkend "Galgje-spel" in PHP.

Voor inspiratie: kijk hier.
Algemene info
Galgje instructie


Tips/stappenplan
Neem onderstaande php-code over en sla het bestand op als eindopdracht.php

1) Breid het aantal hyperlinks waar je op kunt klikken uit tot en met de letter z.

2) Zet deze letters naast elkaar: werkt prettiger.

3) Met onderstaande kun je er voor zorgen dat je maar één keer op een letter kunt klikken:

    if (strpos($letters,a) === false) { // N.B. strpos staat voor string position: dus zolang de letter a niet is aangeklikt...
    echo "<a href=eindopdracht.php?letters=" . $letters . "a>a</a> | "; // Als je op deze hyperlink klikt wordt de letter a bewaard.
    }
    else {
    echo "&nbsp; | "; // Als je op deze hyperlink klikt verdwijnt de a.
    }

4) Zoek/maak 8 Galgje-plaatjes en upload ze.

5) Maak een variabele aan (bv. $woord_raden) en ken daar een te raden woord aan toe (bv. test).

6) Maak met behulp van een for-lus het aantal streepjes bij het te zoeken woord, bv "test" met "_ _ _ _".
    Gebruik de functie strlen($woord_raden) om het aantal letters automatisch te tellen. // strlen staat voor string length.

7) Vervang iedere "_" door de juiste letter van het te raden woord en zet het meteen op de juiste plek:

    $array1 = str_split($letters); // Alle losse letters die zijn aangeklikt worden in een array gestopt.
    $array2 = str_split($woord_raden); // Alle losse letters die zijn aangeklikt worden in een array gestopt (deze is nodig voor stap 7).
    echo preg_replace('/[^' . implode($array1) . ']/',' _ ',$woord_raden); // Alle "_" worden vervangen door de juiste letter op de juiste plaats.

8) Zet een if-statement om de for-lus (van stap 6), zodat die alleen zichtbaar is zolang er nog geen letter is aangeklikt.

9) Tel m.b.v. count(array_intersect($array1, $array2)); het aantal letters wat overeenkomt met het te raden woord en de aangeklikte letters.

10) Reken het verschil uit tussen het aantal letters van $letters en bovenstaande telling: dit geeft het aantal foute letters aan!

11) Genereer m.b.v. if/elseif-statements op basis van dit verschil de 8 verschillende Galgje-plaatjes.

12) Geef de melding of de speler gewonnen of verloren heeft.

13) Voeg een knop toe om een nieuw spel te starten:

     <form action="eindopdracht.php" method="post">
     <input type="submit" value="Nieuw spel">
     </form>

14) Voeg de mogelijkheid toe dat je bij ieder spel een ander woord moet raden.

   a) Voeg de blauwe code toe aan iedere regel die hier op lijkt:

     echo "<a href=eindopdracht.php?nr=$_GET[nr]&letters=" . $letters . "a>a</a> | "; // Hiermee bewaar je een nummer na klikken op hyperlink

   b) Zet onderstaande code boven aan je code (net boven de codes van de hyperlinks bijvoorbeeld) om er voor te zorgen dat 14a nut heeft

     if ($_GET[nr] == ""){
     $_GET[nr] = rand(0,9); // Hiermee heb je kans op 10 verschillende woorden
     }

   c) Vervang $woord_raden = "..."; door

     $woorden = array("woord1","woord2","woord3","woord4","woord5","woord6","woord7","woord8","woord9","woord10");
     $nr1 = $_GET[nr];
     $woord_raden = $woorden[$nr1];



Hieronder de uitgangspostie voor de eindopdracht over Galgje.



<!DOCTYPE html>
<html>
<head>
<style>
body{
font-family: "Courier New", Courier, monospace;
}
</style>
</head>
<body>

<h1>Galgje</h1>

<?php
if (isset($_GET[letters])){
$letters = $_GET[letters];
}
else {
$letters = "";
}
echo "<a href=eindopdracht.php?letters=" . $letters . "a>a</a><br>"; // Als je op deze hyperlink klikt wordt de letter a bewaard.
echo "<a href=eindopdracht.php?letters=" . $letters . "b>b</a><br>"; // Als je op deze hyperlink klikt wordt de letter b bewaard.
echo "<a href=eindopdracht.php?letters=" . $letters . "c>c</a><br>"; // Als je op deze hyperlink klikt wordt de letter c bewaard.
echo $letters;
?>

</body>
</html>