# Onthouden wat er gebeurt [Programmeergidsen](LEESMIJ.md) De **toestand** van een programma is de informatie die beschrijft wat er op dit moment gebeurt. In een spel kunnen dat de score, de overgebleven levens en de stand van een deur zijn. De toestand verandert wanneer er iets gebeurt. Een munt pakken verandert een totaal. Op een knop drukken kan een menukeuze veranderen. Met een variabele onthoudt een programma zo’n waarde tussen opdrachten. ## Onthoud een bordspel Als je een bordspel even pauzeert, moet je onthouden wie aan de beurt is en waar de stukken staan. Die gegevens beschrijven de huidige toestand. Zonder die informatie zou je opnieuw moeten beginnen. Een computerspel heeft hetzelfde probleem. Een deur tekenen onthoudt nog niet of de speler erdoor mag. We kunnen die informatie bewaren in een booleaanse waarde: een waarde die waar of onwaar is. ## Een deur en een sleutel ```pliro # taal: nl laat heeftSleutel = onwaar laat deurOpen = onwaar zet heeftSleutel = waar als heeftSleutel: zet deurOpen = waar als deurOpen: zeg "Je mag naar binnen." anders: zeg "De deur is dicht." ``` Dit kleine voorbeeld stelt het oppakken van de sleutel voor met `zet heeftSleutel = waar`. Het toont het resultaat als tekst in plaats van een spel te tekenen. `heeftSleutel` en `deurOpen` zijn aparte stukjes toestand. Een sleutel hebben en een deur openen zijn verschillende gebeurtenissen. ## Voorspel en probeer Welk bericht moet verschijnen? ```text Je mag naar binnen. ``` Stel je nu voor dat je de regel weghaalt die je de sleutel geeft. De beginwaarde blijft dan onwaar en de deur blijft dicht. ## Jouw uitdaging Voeg een variabele `levens` toe die bij drie begint. Stel het verliezen van een leven voor door er één af te trekken. Toon hoeveel levens overblijven. Houd de toestand van de deur apart van het aantal levens. ## Een veelgemaakte fout Met `laat` binnen een herhaald blok opnieuw een score maken kan die elke ronde terugzetten. Maak een blijvende score vóór de lus en werk die bij met `zet`. Gewone uitvoerwaarden zijn ook geen permanent opgeslagen gegevens. Een nieuwe uitvoering begint bij de beginwaarden, tenzij je bewust opgeslagen informatie laadt. ## Verder leren [Een programma volgen](stap-voor-stap-volgen.md) · [Spelschermen](spelschermen.md) · [Gegevens bewaren](gegevens-bewaren.md)