Getal onder de 10
Introductie
Je bent in een donkere kamer.>Loop NoordJe ziet een deur.>Open deurJe kan de deur niet openen.>Loop OostEr ligt een sleutel>Raap de sleutel opSleutel in voorraad geplaatst>Ga WestJe ziet een deur>Open deurDe deur gaat openJe bent in een bos
Dit is een voorbeeld van een tekstgebaseerd adventure game, een van de vroegste games. Die games kunnen zeer complex worden, maar in de basis van het spel ligt een simpele lus
HERHAALLEES OPDRACHTVOER OPDRACHT UITTOON HINTEINDE HERHAAL
Het 'VOER OPDRACHT UIT' is het meest complexe in het programma. Het moet je huidige lokatie bepalen en wat je daar kunt doen. Er kunnen natuurlijk arrays worden gebruikt.
In games
Een spel dat leuk is om te spelen, heeft altijd het volgende:
- Willekeurige elementen
- Lussen
- Berekeningen (zoals een score of health)
- Invoer
- Uitvoer
Opdracht
Laten we ons eerste spel maken. Het is het eenvoudigste spel mogelijk. Raad een getal tussen 1 en 10. Je krijgt 3 kansen. We zullen de RND-functie gebruiken om ons te helpen.
Kijk maar even mee naar de pseudocode.
MAAK EEN WILLEKEURIG GETAL (1..10)ZET GEWONNEN OP FALSEZET TELLER OP 0HERHAAL TOTDAT GEWONNEN OF TELLER >= 3VRAAG OM EEN GETALALS CORRECTZET GEWONNEN OP TRUETEL 1 OP BIJ TELLEREINDE HERHAALALS GEWONNENAFDRUKKEN "JE HEBT GEWONNEN"ANDERSAFDRUKKEN "JE HEBT VERLOREN"
Wat interessant is aan de pseudocode is dat de controle voor GEWONNEN in de lus staat, maar er is geen controle op VERLOREN. Dat komt doordat we de booleanwaarde standaard op FALSE zetten, dus als we niets doen, is het spel verloren. Dus we moeten het alleen veranderen in GEWONNEN als het nummer juist is.
Pas op met
- het openen en sluiten van haakjes. Bedenk dat je RND() altijd met haakjes schrijft
- de preciese schrijfwijze van WHILE, IF, etc. Zoek het op als je er niet meer zeker van bent
Verwacht resultaat
voorbeeld:
WELKOM BIJ HET RAADSPELKIES EEN GETAL (1-10) 7KIES EEN GETAL (1-10)3KIES EEN GETAL (1-10)4JE HEBT HET GERADEN IN 3 KEER!
Veelgemaakte fouten
- Omdraaien van een Boolean (Gewonnen / Verloren)
- Er 1 naast zitten, laat de gebruiker bijv. 2 of 4 keer raden
- Booleaanse waarden worden niet gedefinieerd (onthoud 0 = False en -1 = True)
Extra uitdaging
- Vertel de gebruiker of het getal warm of koud is. Een verschil van 5 of meer is KOUD. Een verschil van minder dan 5 is WARM.
- Vertel de gebruiker om hoger of lager te gaan.
Bronnen
(Er zijn nog geen discussies in dit forum)