Ken jij het spel 'Galgje'? Laten we dat eens samen maken!
Oefening 7: Galgje
Galgje is een spel waarbij het de bedoeling is voor de speler om alle letters van een woord te raden. Bij elke foute letter, wordt een deel van de galg getekend. Wanneer de tekening af is en het woord niet is geraden, heb je verloren. Raad jij het woord op tijd?
Het eindresultaat
Project
In dit project hebben we de sprites voor de galg en Unix al volledig klaargezet. Zorg jij er nu voor dat volgende dingen allemaal mogelijk zijn:
- Een geheim woord van zeven letters wordt gekozen.
- De speler wordt gevraagt een letter te raden.
- Er wordt gecontroleert of de letter van de speler in het geheim woord zit.
- Bij een juist antwoord wordt de letter zichtbaar in het geheime woord. Bij een fout antwoord wordt een deel van de galg getekend.
- Wanneer het geheime woord wordt geraden, is er feest en stopt het spel.
- Wanneer de galg volledig is getekend, stopt het spel.
Stappenplan
Stap 1: Stap voor stap, blok voor blok
Dit is een leuk spel, maar hoe begin je aan zoiets om te maken? We delen alles op in kleine stapjes. Zo kunnen we beetje bij beetje bouwen aan dit spel tot het af is.
Dit is verloop van het spel:
- Eerst zet je alles klaar. We leggen in de volgende stap uit wat we precies klaar zetten.
- Daarna zorgen we ervoor dat alle variabelen met de juiste waarde beginnen.
- Eenmaal alles klaar is, vraag je de speler om een letter te raden.
- Verwerk het antwoord. (zie stap 5)
- Update het zichtbare woord. (zie stap 6)
- Controleer het antwoord. (zie stap 7)
- Controleer het einde van het spel. (zie stap 8)
Al deze stappen kan je opdelen in allemaal verschillende blokken die je zelf maakt. Laten we ze nu één voor één eens overlopen.
Stap 2: Zet alles klaar
Maak een “zet alles klaar”-blokje. In dit blokje maak je twee variarbelen:
- De variabele geheim woord: dit is het woord dat geraden moet worden.
- De variabele zichtbaar woord: dit is het woord dat je ziet op het scherm. In het begin zijn dit allemaal vraagtekens.
Voor deze oefening gebruiken we enkel woorden met zeven letters. In onze oplossing is het geheim woord “giraffe”, en het zichtbaar woord is “???????” (zeven vraagtekens).
Na het maken van de variabelen zorge je er nog voor dat:
- Het zichtbaar woord wordt geüpdate. (zie stap 6)
- De galg-sprite wordt gereset. Dit houdt in dat het uiterlijk van deze sprite begint met uiterlijk1.
Stap 3: Instellen van de variabelen
Maak een “instellen variabelen”-blokje. In dit blokje maak je drie variabelen:
- De variabele tijdelijk woord: dit woord gaan we gebruiken tijdens het verwerken van het antwoord.
- De variabele positie: deze variabele zal de positie van een letter aanduiden in een woord.
- De variabele heeft letter: deze variabele zullen we gebruiken om te onthouden of we de letter zijn tegengekomen in het woord of niet. Deze variabele zal dus maar twee verschillende waarden hebben:
- Waarde 0: de letter zit niet in het woord.
- Waarde 1: de letter zit wel in het woord.
Zorg ervoor dat:
- De waarde van het tijdelijk woord is leeg. We beginnen dus met een lege string.
- De waarde van positie is 1. We starten met de eerste letter van het woord.
- De waarde van heeft letter is 0. We hebben nog geen letter gevonden in het woord.
In het spel is het belangrijk dat al deze variabelen steeds starten met deze waarden vooraleer er opnieuw gevraagd wordt naar een letter.
Stap 4: Vraag een letter
Deze stap is erg simpel. Vraag aan de speler om een letter te kiezen.
Stap 5: Verwerk het antwoord
Wanneer we een antwoord hebben gekregen, gaan we dit antwoord verwerken. Dit betekent dat we gaan kijken of de letter van de speler in het geheim woord zit. In deze stap gebruiken we volgende variabelen:
- geheim woord: Op dit moment is dit gelijk aan “giraffe”.
- zichtbaar woord: Op dit moment is dit gelijk aan “???????”.
- tijdelijk woord: Op dit moment is dit gelijk aan “”, namelijk een lege string.
- positie: Op dit moment is dit gelijk aan “1”.
- heeft letter: Op dit moment is dit gelijk aan “0”.
En we maken nog een extra variabele letter om de letter van het woord voor even te onthouden.
Voor elke letter van het geheim woord doen we de volgende dingen:
- Maak letter gelijk aan de letter op positie van het geheim woord.
- Controleer of de letter gelijk is aan het antwoord.
- Als de letter gelijk is aan het antwoord, dan betekent dat dat we de letter van de speler hebben gevonden in ons woord. Maak heeft letter 1.
- Anders maak je de letter gelijk aan de letter op de positie van het zichtbaar woord.
- Wanneer deze controle gedaan is voeg je de letter toe aan het tijdelijk woord.
- En vergeet zeker niet de positie ook te veranderen met 1.
- Blijf dit dus herhalen tot je alle letter van het geheim woord hebt gehad.
- Wanneer je alle letters hebt gedaan maak je het zichtbaar woord gelijk aan het tijdelijk woord.
Stap 6: Update het zichtbaar woord
Als je kijkt bij de variabelen, dan zien je daar een heleboel variabelen die wij al hebben gemaakt voor jou. Deze variabelen zijn namelijk:
- letter1: dit is de eerste letter van het zichtbaar woord en het eerste vakje op het scherm.
- letter2: dit is de tweede letter van het zichtbaar woord en het tweede vakje op het scherm.
- letter3: dit is de derde letter van het zichtbaar woord en het derde vakje op het scherm.
- letter4: dit is de vierde letter van het zichtbaar woord en het vierde vakje op het scherm.
- letter5: dit is de vijfde letter van het zichtbaar woord en het vijfde vakje op het scherm.
- letter6: dit is de zesde letter van het zichtbaar woord en het zesde vakje op het scherm.
- letter7: dit is de zevende letter van het zichtbaar woord en het zevende vakje op het scherm.
Maak nu een “update zichtbaar woord”-blokje. Zorg ervoor dat in dit blokje elke variabele de juiste letter van het zichtbaar woord bevat.
Stap 7: Controleer het antwoord
In stap 5 zorgde we ervoor dat wanneer een letter goed werd geraden, deze letter in het zichtbaar woord te zien was. In stap 6 tonen we dit zichtbaar woord op het scherm. Maar wat doen we wanneer de letter niet in het woord zit? Herinner je je de variabele heeft letter? Deze kunnen we nu gebruiken om op een heel eenvoudige manier te testen of de letter in het woord zat of niet.
Zorg er nu voor dat wanneer de letter niet voorkomt in het geheim woord (heeft letter is gelijk aan 0), de galg naar het volgende uiterlijk verandert. Gebruik hiervoor dus een signaal!
Stap 8: Einde van het spel
Het einde van het spel kan op twee manieren bereikt worden:
- Het geheime woord wordt geraden. Met andere woorden, het geheim woord is gelijk aan het zichtbaar woord.
- Het laatste uiterlijk van de galg-sprite is getekent. In dit project is de nummer van het laatste uiterlijk gelijk aan 11.
Maak nu een “controleer einde spel”-blokje. Zorg ervoor dat je beide manieren test. Wanneer het woord werd geraden kan je een klapgeluidje starten en daarna alles stoppen. Wanneer de speler het spel heeft verloren doe je best de volgende dingen:
- Maak het zichtbaar woord gelijk aan het geheim woord.
- Update het zichtbaar woord. Je ziet het woord dan op het scherm komen.
- Start een gong geluid
- Stop alles
Stap 9: Hebben we alles?
Normaal gezien zou nu elk deel van het spel aanwezig moeten zijn. Kijk nog eens naar stap 1 als je wil weten in welke volgorde je de gemaakte blokken moet gebruiken. Vergeet zeker niet vanaf het “instellen variabelen”-blokje alles te blijven herhalen tot het spel stopt.
[TIP: De variabelen moeten steeds weer opnieuw worden ingesteld voor je weer naar een letter vraagt]
Evaluatie
Tijd om alles nog eens te testen om zeker te zijn dat alles goed werkt.
- Wordt de speler gevraagt een letter te raden?
- Wordt er gecontroleert of de letter van de speler in het geheim woord zit?
- Wordt bij een juist antwoord de letter zichtbaar in het geheime woord?
- Wordt bij een fout antwoord een deel van de galg getekend?
- Stopt het spel wanneer het juiste woord is geraden?
- Stopt het spel wanneer de galg volledig is getekent.
EXTRA
Nu heb je enkel een spel gemaakt met een het woord “giraffe” als geheim woord. Zou het niet veel leuker zijn als je niet weet welk woord je moet raden? We kunnen dit doen met een lijst.
Maak een woordenlijst die allemaal woorden bevat van zeven letters. Laat aan het begin dus een woord gekozen worden uit deze lijst en speel het spel zoals voorheen. Lukt je dit?
Oplossing
De oplossing vind je hier!
Wat een leuk, zeg! Dit was het laatste spel van dit hoofdstuk. Wil je nog verder werken, kijk zeker dan eens naar onze projectideeën!