Sterrenhemel

Deze week en volgende week gaan we een sterrenhemel maken. De oefening heb ik in 5 stappen opgedeeld:

  1. Teken de hemel (de achtergrond)
  2. Teken een ster met een willekeurig aantal punten
  3. Teken een ster op een willekeurige plaats
  4. Teken een ster met een willekeurige grootte
  5. Teken een hemel vol sterren

Deze week ga je aan de slag met opdracht 1 en 2. Volgende week krijg je opdracht 3 t/m 5.

Opdrachten

Opdracht 1

Eerst teken je een donkere achtergrond. In deze opdracht maak ik weer gebruik van een eigen ‘go_to’ functie, net als in de oefening van week 33.

  1. Maak een functie met de naam ‘go_to’ en de variabelen ‘x’ en ‘y’. In de functie gebruik je de commando’s ‘pen up’, ‘goto’ en ‘pen down’.
  2. Geef de pen een donkere kleur (blauw of zwart, wat jij mooi vindt).
  3. Teken een ingekleurd vierkant dat net iets groter is dan je scherm. Het scherm is een vierkant met als middelpunt (0,0) en een hoogte van 400 en een breedte van 400. De coordinaten van de hoekpunten zijn dus:
    1. (-200, -200)
    2. (-200, 200)
    3. (200, 200)
    4. (200, -200)
      Tip 1: ga naar het beginpunt en herhaal dan 4 keer de commando’s ‘forward’ en ‘turn left’ of ‘turn right’ om het vierkant te tekenen.
      Tip 2: gebruik de commando’s ‘begin fill’ en ‘end fill’ om het vierkant in te kleuren

Opdracht 2

Nu gaan we een ster tekenen. Er zijn verschillende manieren om een ster te tekenen, maar ik heb gekozen voor sterren met een oneven aantal punten, omdat je die kunt tekenen door steeds achter elkaar lijnen (met een vaste hoek ertussen) te tekenen. Dit klinkt misschien een beetje raar, maar kijk maar eens naar dit voorbeeld:

 

Om de hoek tussen twee lijnen te berekenen kun je de volgende formule gebruiken: angle = 180 – (180 : points), waarbij points het aantal punten van een ster is. Om de ster te tekenen kun je de volgende stappen gebruiken:

  1. Maak de variabelen size, angle en points aan.
  2. Maak een functie draw_star met de volgende input: size, points, color, x, y
  3. Bouw deze functie als volgt op:
    1. Ga naar het punt (x, y)
    2. Geeft de variable angle de waarde 180 – (180 / points)
    3. Geef de pen de kleur ‘color’
    4. ‘Begin fill’
    5. Herhaal ‘points’ keer:
      1. Beweeg voorwaarts met ‘size’
      2. Draai rechtsom met ‘angle’
    6. ‘End fill’
  4. Voeg nu de volgende stappen toe na ‘create_sky’
    1. De variabele ‘size’ met een waarde (bijvoorbeeld 150)
    2. De variabele ‘points’ met een oneven waarde (bijvoorbeeld 7)
    3. De functie ‘draw_star’ met:
      1. size = de variabele ‘size’
      2. points = de variabele ‘points’
      3. color: kies een kleur
      4. x = 0 (toevoegen via Numbers)
      5. y = 0
  5. Klik op Run en kijk of het werkt (je tekent een ster)
    Tip: kijk eens wat er gebeurt als je een even getal invult bij de variabele ‘points’
  6. Nu gaan we het aantal punten variabel maken. Hiervoor gaan we de waarde die je in stap 4.2 hebt ingevuld vervangen door een formule. Omdat je altijd een oneven aantal punten wil, gebruik ik de volgende formule:
    points = (2 * (random integer from 2 to 4)) + 1.
  7. Klik een aantal keer op Run en kijk of er sterren met een verschillend aantal punten getekend wordt.

Oplossing

Je kunt de oefening hier maken. Mijn oplossing voor opdracht 1 kun je hier vinden en die voor opdracht 2 hier.

Een video met de uitleg van wat ik gedaan heb, volgt in de volgende blog.

Er zijn als je gaat programmeren altijd meerdere oplossingen mogelijk. Het kan dus prima zijn dat jouw oplossing ook goed is, ook als is hij anders dan hierboven. Het gaat erom dat er hetzelfde antwoord uitkomt.

Heb je nog weinig ervaring met programmeren? Deze oefening is in Blockly gemaakt. Je hoeft dan nog geen echte code te schrijven, maar gebruikt blokken met duidelijke tekst in plaats van programmeren. Het is ook nog eens goed voor je Engels, want dat is de taal waarin de oefening gemaakt is.

Starterstip: open het scherm waar je de oefening kunt maken. Open een tweede tab met de oplossing. Probeer nu het programma na te maken.

Wil je elke week een herinnering als de nieuwe oefning beschikbaar is? Vul dan hieronder het formulier in (graag de gegevens van een volwassene gebruiken in verband met de AVG. Je kunt mijn algemene voorwaarden en privacyverklaring lezen onderaan mijn website.)

Liefs Esther 

Ja ik wil graag een herinnering als er een nieuwe oefening online is!

0 reacties