Bakstenen muur

In dit project gebruik je abstractie om een bakstenen muur te tekenen.

Geen Afbeelding

Abstractie

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.

Eén Baksteen tekenen

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.




  1. Dit project bevat het gehele teken baksteenblok 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: Geen Afbeelding. Dat is vaak de beste keuze, zie hieronder. Maar voor bakstenen willen we dat het einde van een lijn wel recht is: Geen Afbeelding.


Rechte versus afgeronde lijneindes:

Probleemdecompositie gebruiken

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`.


  1. Gebruik teken baksteen om de blokken en te maken.
  2. De twee soorten rijen moeten precies dezelfde lengte zijn. Bij je eerste poging om Rij B te tekenen is de rij waarschijnlijk te lang. Debug het probleem:
    • Moet Rij B bakstenen hebben van een andere maat, tussenruimtes van andere maat of is er alleen een probleem aan het begin en aan het eind?
    • Als je het niet zeker weet, probeer dan alle mogelijkheden en bepaal zelf wat er het beste uit ziet.
    • En vraag je af 'Wat is het meest logisch in een echte bakstenen muur?'

    Als je eenmaal rijen A en B met dezelfde lengte hebt gemaakt, dan ben je er klaar voor om het blok te maken.

  3. Importeer je even?blok en gebruik het om het blok te schrijven.
    Kijk ook nog weer even naar Hoofdstuk 2 Les 1 Pagina 4 'Importeer 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.

    Lees de sectie "Benodigdheden Importeren" hieronder en test je nieuwe blok om er zeker van te zijn dat het goed werkt.

    Benodigdheden Importeren

    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.




  1. Gebruik je bakstenen muur in een ander project, door je bakstenen-muurblokken te exporteren en importeren.
    Kijk ook even naar Hoofdstuk 2 Les 1 Pagina 4 'Importeer Groet Spelers in een ander programma'.
 
  1. Voeg meer invoeren toe aan je teken Bakstenen Muur (en indien nodig aan rij A en rij B) voor:
    1. Het aantal bakstenen per rij.
    2. De lengte en breedte van een baksteen.
    3. De afmeting van de tussenruimte.


    Voeg deze een voor een toe, niet allemaal tegelijkertijd! Wanneer je de lengte van een baksteen in rij A aanpast, moet je ook de lengte van een baksteen in rij B aanpassen. Hetzelfde geldt voor de afmeting van de tussenruimtes.
TerugVolgende