Bakstenen muur

In dit project, ga je abstractie gebruiken om een bakstenen muur te tekenen.

Geen Afbeelding

Abstractie

Iedere goede programmeertaal heeft verschillende manieren hebben om te tekenen en bewegen. Het zou alleen niet logisch zijn om een ingebouwde manier te hebben om bakstenen te tekenen, omdat de meeste programma's geen bakstenen nodig hebben. Dat zijn de soort functies die je zelf moet maken als je ze nodig hebt.

Door een speciaal blok te maken, zorg je ervoor dat je namen voor procedures kan gebruiken die gerelateerd zijn aan het probleem dat je aan het oplossen bent (zoals teken baksteen), in plaats van algemene procedures (zoals beweeg) die de computer gebruikt voor van alles.

!

Één Baksteen Tekenen

Een afbeelding van een baksteen is gewoon een rechthoek met de rode kleur van een baksteen. Hoewel er geen teken rechthoekblok bestaat in snap, bestaan er toch manieren om er een te tekenen. Een manier is om een rechthoek te zien als een hele dikke lijn. Hieronder kan je dit idee toegepast zien:

Het blok zit niet standaard in Snap!. In projecten zonder dit blok, kan je "Flat line ends" aanzetten in het menu.

Normaliter tekent Snap! dikke lijnen met afgeronde eindes: Geen Afbeelding. Dat is vaak de beste keuze, en je kan de reden daarvoor hieronder zien. Maar voor bakstenen willen we dat het einde van een lijn recht is: Geen Afbeelding.


Rechte vs. afgeronde lijneindes.


  1. Het bevat het gehele teken baksteenblok zoals hieronder. Lees de code; probeer het dan uit.

Probleem-decompositie gebruiken

Je wil eigenlijk dat het blok op het hoogste niveau er ongeveer zo uitziet:

Om dat te krijgen heb je iets nodig dat probleem decompositie heet: het probleem opbreken in kleinere stukken.

Er zijn twee soorten rijen, dus we maken blokken die gespecialiseerd zijn in iedere soort:

  1. Gebruik teken baksteen om de blokken en .
  2. De twee soorten rijen moeten precies dezelfde lengte zijn. Je eerste poging om Rij B te tekenen is waarschijnlijk te lang. Debug het probleem.
    • Moet Rij B bakstenen van een andere grootte hebben, gaten van andere grootte hebben of zijn alleen andere blokken aan het eind nodig?
    • Als je het niet zeker weet, probeer dan alle mogelijkheden en bepaal zelf wat er het beste uit ziet in de muur.
    • Of bedenk "Wat zou het meest logisch zijn in een echte bakstenen muur?"

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

  1. Importeer je even?blok en gebruiken het om het blok te schrijven. Je vindt het misschien handig om weer even te kijken naar Hoofdstuk 2 Les 1 Pagina 4: Importeer Groet Spelers in een ander programma om te herhalen hoe je een blok importeert en Hoofdstuk 2 Les 3 Pagina 1: Wat is een predikaat? voor het even?blok. Lees de sectie "Debugging Dependencies" hieronder en test je nieuwe blok om er zeker van te zijn dat het goed werkt.

    Debugging Dependencies

    Je hebt je even?blok gemaakt met behulp van een ander zelfgemaakt blok, deelbaar door?. Je moet beide blokken exporteren, opdat even? goed werkt wanneer je het importeert in je Bakstenen-Muurproject.

    Als je ooit dit rode Obsolete!blok ziet in code die je geïmporteerd hebt, dan betekent dat, 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. Je vindt het misschien handig om weer even te kijken 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 je rij A en rij B) voor:
    1. Aantal bakstenen per rij.
    2. lengte en breedte van een baksteen.
    3. Gat dikte.

    Voeg deze één voor één toe, niet allemaal tegelijkertijd! Wanneer je de lengte van een baksteen aanpast, moet dat ook de lengte van een baksteen in rij B aanpassen. Als je de gatdikte aanpast, moet dat ook de afstand tussen de rijen veranderen.
TerugVolgende