In dit project gebruik je abstractie om een bakstenen muur te tekenen.
Een programmeertaal kan functies hebben voor tekenen en bewegen, maar het heeft geen zin om speciale functies voor het tekenen van stenen in te bouwen. Weinig programma's bouwen immers muurtjes. Zulke functies maak je dus zelf als ze nodig hebt.
Door een speciaal blok te
maken, zorg je ervoor dat je blok een naam heeft, gerelateerd aan het probleem
dat je oplost, zoals teken baksteen
. In plaats van een algemene
functie met een algemene naam, zoals beweeg
, die je breed kan inzetten.
Een afbeelding van een baksteen is gewoon een rode rechthoek. snap kent geen manieren om een rechthoek te tekenen, maar er is wel een simpele oplossing. Je kunt een rechthoek ook zien als een hele dikke lijn. Hieronder zie je dit idee toegepast.
teken baksteen
blok zoals hieronder. Lees eerst de code,
probeer het daarna uit.
Het blok zit niet standaard in Snap!. In projecten zonder dit blok, kan je 'Rechte lijn uiteinden' aanzetten in het menu.
Normaliter tekent Snap! dikke lijnen met afgeronde eindes: . Dat is vaak de beste keuze, zie hieronder. Maar voor bakstenen willen we dat het einde van een lijn wel recht is: .
Rechte versus afgeronde lijneindes:
Je wil eigenlijk dat het blok op het hoogste niveau er ongeveer zo uitziet:
Om dat te krijgen heb je probleemdecompositie nodig: het probleem opbreken
in kleinere stukken. Zie Hoofdstuk 2 Les 2 Pagina 1.
Er zijn twee soorten rijen, dus we maken blokken voor beide variaties. In metseltermen is dit een `halfsteensverband`.
teken baksteen
om de blokken
en
te maken.Als je eenmaal rijen A en B met dezelfde lengte hebt gemaakt, dan ben je er klaar voor om het blok te maken.
even?
blok en gebruik het om het
blok te schrijven.Groet Spelers
in
een ander programma', om te herhalen hoe je een blok importeert. En naar Hoofdstuk 2 Les 3 Pagina 1
`Wat is een predikaat?` voor het even?
blok.
Je hebt je even?
blok gemaakt met behulp van een ander zelfgemaakt blok, deelbaar door?
.
Exporteer beide blokken, zodat even?
werkt wanneer je het importeert in je Bakstenen-Muurproject.
Als je ooit dit rode Obsolete!
blok (rechts in het plaatje) ziet, in code die je geïmporteerd hebt, dan
weet je dat een benodigd blok niet is geëxporteerd. Je moet dan terug naar je originele project en het opnieuw
exporteren. Zorg ervoor dat je alle blokken die je nodig hebt selecteert bij het exporteren.
Groet Spelers
in een ander programma'.
teken Bakstenen Muur
(en indien nodig aan rij A
en rij B
) voor: