Herhalen met een teller

Programmeurs omschrijven zo'n structuur als een "lus". Rangschikken, selecteren en itereren zijn taken die belangrijk zijn in algoritmes. Je wilt misschien nog even kijken bij Hoofdstuk 1 Les 2 Pagina 4: Spelersnamen leren voor een opfrisser over rangschikken en selecteren.

Het herhaalblok genereert een oneindige lus die voor altijd zal blijven herhalen. Een oneindige lus kan soms het resultaat zijn van een bug, maar in sommige interactieve programma's, wil je dat het programma blijft lopen totdat het gestopt wordt door de gebruiker.

Je hebt de onderstaande manieren gezien om een groep blokken te herhalen:

Op deze pagina, ga je herhaallussen gebruiken om een stukje code te herhalen en het aantal herhalingen te tellen zodat je de teller kunt gebruiken om vormen te tekenen met herhalende patronen...
Geen Afbeelding Geen Afbeelding

Het Geen Afbeeldingblok bevat een tellervariable, Geen Afbeelding, die het aantal herhalingen bijhoudt. Je kan de naam van de tellervariable aanpassen door erop te klikken. Je kan deze tellervariable gebruiken in een herhalend script. Je kan hiermee lange scripts versimpelen, zoals hieronder.

Elke keer wanneer het herhaalblok door de blokken in zich loopt, verhoogt het de waarde van de variabele imet 1. Dit doet het vanaf zijn eerste invoergetal tot aan zijn tweede invoergetal, in dit geval zijn dat respectievelijk 1 en 10.

Geen Afbeelding       doet hetzelfde als Geen Afbeelding

  1. Klik op het Geen Afbeelding-menu aan de bovenkant van het snap beeld en selecteer "Importeer Tools."
  2. Het herhaalblok geeft je een standaard variabele, i ( de "i" staat voor index). Je kunt de naam van deze variabele veranderen door er op te klikken. Eenmaal veranderd, sleep je het buiten zijn vakje en kan je het net als elke andere variabele gebruiken.
  3. Bouw dit script waarin een sprite alle getallen tussen 1 en 10 zegt.
    Geen Afbeelding
    1. Pas dit script nu aan zodat de sprite de reeks 0, 2, 4, 6, 8, ... tot en met 30 zegt.
    2. Bespreek hoe je de stap hierboven hebt gedaan met je buur of iemand anders.
  4. Experimenteer met spiralen.
    1. Bouw het onderstaande script en voer het uit.
      Geen Afbeelding
    2. Geen Afbeelding Bespreek met elkaar waarom de vierkante spiraal naar buiten draait.
    3. Probeer eens om het eerste en tweede invoergetal te verwisselen in het herhaalblok in het script van de vierkante spiraal. Wat is het resultaat hiervan?
    4. Probeer eens om de draaihoek in het vierkant-script te veranderen naar andere getallen zoals 92, 126, etc.
    5. Verander de invoer in de draai graden- en neem stappenblokken om zo dicht mogelijk in de buurt te komen van een ronde spiraal:
      Geen Afbeelding
  5. "H1L3-VierkanteSpiraal" Geen Afbeelding
  1. Open je H1L3-Molen project en bouw een geneste vierkantenblok dat een herhaalblok en je veelhoekblok gebruikt om een aantal geneste vierkanten te tekenen. "Genest" betekent dat de vierkant in elkaar zitten. Geef het een invoer zodanig dat het een willekeurig aantal vierkanten zal tekenen die jij specificeert, met elk vierkant groter dan de voorgaande:
    Geen Afbeelding
  2. Bouw nu een geneste veelhoekenblok dat als invoer een bepaald aantal veelhoeken en een bepaald aantal kanten voor de veelhoeken heeft.
  3. Bouw een script dat 12 gewone veelhoeken tekent, elke met steeds één kant meer dan de voorgaande, zoals hieronder weergegeven.
    Geen Afbeelding
  4. Voorspel wat het onderstaande script doet voordat je het uitprobeert:
    Geen Afbeelding
 
  1. Bouw een script dat met stappen van 10 aftelt van 100 tot 0 (dus, 100, 90, 80, etc.).
  2. Vind een manier om het forblok te gebruiken om geneste vierkanten te tekenen op de manier hieronder. Bouw je blok met twee invoeren die zeggen hoeveel vierkanten het ontwerp bevat en hoeveel groter elk vierkant zal worden ten opzichte van de vorige.
    Geen Afbeelding Geen Afbeelding
  3. Hieronder staan twee animaties die de molencode gebruiken met verschillende invoeren. Probeer zelf ook zo'n artistieke animaties kunt maken.
    Geen Afbeelding Geen Afbeelding

    De onderstaande code kan je ideeën geven over hoe je animaties kunt maken. Zorg ervoor dat je alle wacht 0.5 sec blokken uit je molencode hebt verwijderd, zodat ze het script niet vertragen. Code die omringd wordt door een warp blok, wordt in één keer tegelijkertijd uitgevoerd.

    Geen Afbeelding
  4. Geen Afbeelding Geen Afbeelding Geen Afbeelding Dit blok is net als script dat de vierkante spiraal tekent, maar in plaats van dat de invoer voor neem stappen steeds groter wordt, wordt de invoer voor het draai graden blok steeds groter.
    Geen Afbeelding
    1. Probeer te schetsen wat dit blok zal tekenen als de invoer voor de hoek 2 is. het aantal herhalingen en de grootte bepaal je zelf voor de schets.
    2. Bouw nu het blok na en probeer deze tests:
      Je kunt een test stoppen met de "stop"-knop (Geen Afbeelding) als je er zeker van bent dat er niks nieuws gaat gebeuren, maar beslis dit nooit te snel!
      Geen Afbeelding
    3. Wat gebeurt er? Kun je een theorie bedenken die verklaart welke vorm getekend wordt voor een specifieke hoek-invoer?
      Hint: Denk aan deelbaarheid.
TerugVolgende