Functies
Het Koninkrijk van de ring

Introductie

Hallo en welkom bij de introductieles van week 3 "From media computation to data science" Wanneer je deze lange video van begin tot einde blijft volgen zal het schrijven van scripts je in de toekomst gemakkelijker afgaan. Vandaag gaan we je een geheim in Snap! onthullen.
Je kent de verschillende type van Snap! blokken.
1.
: "hat" blok of "event" blok. Dit blok start/reageert op een actieve handeling.
2.
: "command" en/of opdracht blok. De puzzelvormige blokken voeren een opdracht uit
3.
: "reporter" blokken, rapporteren een
of een
en
terug.
4.
: functie blokken. Met deze blokken tover je elk script om in een functie.
Over de ringen, de functieblokken gaat deze les.. Je vind deze blokken bovenin de categorie "operators". De functie blokken komen in drie smaken. Onder punt 4 zie je: in het eerste functie blok past een "command" blok, in de tweede een "reporter" blok en in het derde functie blok past een "predicate", predikaat blok.
De orginele video van deze cursus, voorzien van Nederlandse ondertiteling kun je hier terug kijken.

Functies

Wanneer de omvang en compelexiteit van het script toeneemt kan het gebruik van funties je helpen het overzicht te bewaren. Neem als voorbeeld de chocoladefabriek waar chocoladerepen gemaakt worden. Je kunt een chocaldefabriek bedenken met één chocoladereep machine, deze machine verricht alle handelingen om een chocoladereep te maken. Meer waarschijnlijk is de situatie dat er meerdere machines staan, die elk een specieke handeling verrichten, elk hun specifieke functie hebben.
Chocoladefabriek
Elke machine heeft een eigen functie om tot het product chocoladereep te komen. Bijkomend voordeel binnen deze werkwijze is dat wanneer er één machine defect raakt, niet heel de chocoladefabriek stil komt te liggen. Een ander belangrijk voordeel is dat we het chocoladereep-proces eenvoudig kunnen aanpassen.
Nieuwe functionaliteit voor Sjaakie
We gaan de werking van het Snap! functieblok uitleggen aan de hand van een praktisch voorbeeld.
  • Bouw dit script, het is opgebouiwd uit Snap!'s standaard "commando" blokken.
Ster script
Wanneer met de muis op dit script klikt wordt het direct uitgevoerd. Dit script tekent een ster met het magische getal van 144 graden.
  • sleep dit script in het bijpassende functieblok.
Functie script
Wanneer we met de muis op dit script klikken gebeurd er helemaal niets 🙄 Is dit een "bug" in Snap!? Het script werkt niet meer. Welkom in het Koninkrijk van de Ring! We hebben van ons script een "ding" een functie gemaakt. Laat me dit uitleggen. Maak de variabele "my variable" aan.en plaats, wijs de functie toe aan de variabele "my variable".
Stel jezelf de volgende vraag: kan ik het script zonder ring ook aan de variabele "my ring" toewijzen?
Het script is een functie geworden...een "ding", functies kun je oproepen en/of uitvoeren met "call" en "run". Ga naar de categorie "control" en sleep het
in het script veld. Plaats de variabele "my variable" in de functie ring.
.
  • Klik op dit blok en kijk naar wat er op het podium gebeurd.
Niets bijzonders zul je wellicht denken, al die moeite gedaan om weer een ster te tekenen? Let maar eens op het Koninkrijk van de ring.
  • Wijs een "list" toe aan de variabele "my variable"
  • Klik erop om de variabele met lijst te initiëren.
  • In de categorie "variables", sleep het
    blok in je script veld.
  • Plaats de ster functie en de variabele "my list" in dit blok
  • Klik eenmaal op dit blok!
Het ster script is nu aan de lijst toegevoegd. Weet je nog? In de chocoladefabriek hebben we de praliné functionaliteit aan pruductielijn toegevoegd. Herhaal de volgende stappen met de scripts die je heironder ziet staan.
  • Sleep het ster script uit het
    blok
  • Plaats het volgende script in het "add" blok.
  • Klik eenmaal op het blok
De functie scripts:
1.
2.
3.
4.
5.
Behalve de lijst "my variable" verwijder je alle blokken in het script veld. Maak en schrijf het volgend script.
  • Verberg de lijst "my variable" op het podium.
  • Run het script door er met de muis op te kikken. De kaart van het metronetwerk in Amterdam?
Elke keer kiest dit script een andere en willekeurige functie uit de lijst "my variable" om uit te voeren. Het idee hier achter is dat we een lijst hebben, in die lijst plaatsen we scripts met een ring er omheen. Door een ring om een script te plaatsen wordt het script een functie, het script wordt een "ding". In computerwetenschap noemen we dat klasse 1 of "first class". Wanneer een script "first class" is, alleen dan kun je het toewijzen aan een variabele.
Aan niemand dit geheim door vertellen hoor. Welkom in het Koninkrijk van de ring.

Probeer meer

Experimenteer door andere functie scripts aan de lijst "my variable" toe te voegen. Laat jezelf daarin niet beperken door het voobeeld van deze les. Experimenteer met getallen en berekeningen, letters en zinnen, kleuren en tekeningen, geluiden en muziek. Experimenteer vooral met en in het combineren van deze domeinen.
Resultaat: Metro script
Last modified 1yr ago