Lærerveiledning - Straffespark
Skrevet av: Geir Arne Hjelle, Vegard Tuset
Om oppgaven
I denne oppgaven skal elevene lage et enkelt fotballspill, hvor de skal prøve å score på så mange straffespark som mulig. Denne oppgaven egner seg godt som en første introduksjon til Scratch.
Oppgaven passer til:
Fag: Matematikk, Programmering
Trinn: 7.-10. trinn
Tema: Koordinater, objektorientert programmering, løkker, variabler, tester
Tidsbruk: Dobbelttime
Kompetansemål
Forslag til læringsmål
Forslag til vurderingskriterier
Forutsetninger og utstyr
Fremgangsmåte
Her kommer tips, erfaring og utfordringer til de ulike stegene i den faktiske oppgaven. Klikk her for å se oppgaveteksten.
Generelt
Steg 2: Vi sparker ballen
Steg 4: Keeperen redder!
Steg 5: Førstemann til 10!
-
Dersom elevene vil at også
Ball
ellerKeeper
skal si noe kan det være utfordrende på grunn avstopp
-klossen. En mulig løsning er som følger:når jeg mottar [Redning v] si [Hurra, jeg reddet!] stopp [andre skript i figuren v] :: control
Det er her viktig å ikke bruke
si [Hello!] i (2) sekunder
siden den klossen vil gjøre atBall
ellerKeeper
ikke slutter å bevege seg før etter 2 sekunder. For at snakkeboblen skal bli borte kan man bruke ensi []
-kloss (uten tekst). Denne kan legges øverst inår grønt flagg klikkes
- ellernår jeg mottar [Nytt spark v]
-skriptet.
Variasjoner
Dersom elevene allerede er komfortable med Scratch er dette prosjektet en bra anledning for å snakke om hvordan man gir forskjellige figurer en unik oppførsel ved å legge ulike skript på dem.
Et viktig konsept i Scratch er at man koder ved å beskrive egenskapene (utseende, posisjon, retning, osv.) og oppførselen (skript) til figurer. På fagspråket kalles dette objektorientert programmering (mer presist er Scratch prototypeorientert programmering, men forskjellen er ikke relevant her). Dette virker så naturlig at elevene sjelden bevisst tenker på dette, og samtidig skaper det sjelden problemer.
Dette er et introduksjonsprosjekt, og elevene ledes derfor ganske detaljert gjennom hvordan spillet skal programmeres. Det er likevel rom for en del kreativitet. Elevene kan gjerne oppfordres til å
-
-
gjenta for alltid pek mot [Bat1 v] gå (10) steg slutt
-
Det er mange måter å skrive kode for at flaggermusa rømmer. Det følgende er et eksempel (husk at koden hører til flaggermusa):
gjenta for alltid vent til <berører [Sprite1 v]> gli (0.2) sekunder til x: (tilfeldig tall fra (-240) til (240)) y: (tilfeldig tall fra (-180) til (180)) slutt
-
Et eksempel på en annen type programmering er imperativ programmering hvor programmer skrives som en serie kommandoer uten at det skilles mellom hvilken figur som kommanderes. I et slikt språk ville de to skriptene over skrives som ett skript omtrent som dette (ikke alle disse klossene eksisterer i Scratch):
gjenta for alltid flytt [katten v] mot [flaggermusa v] :: motion hvis <[katten v] berører [flaggermusa v] :: sensing> flytt [flaggermusa v] til x: (tilfeldig tall fra (-240) til (240)) y: (tilfeldig tall fra (-180) til (180)) :: motion slutt slutt
Vis gjerne denne koden til elevene. I tillegg til at det bare er ett skript, hvilke andre forskjeller ser de? Den andre store forskjellen er at man alltid må fortelle hvilken figur som skal utføre kommandoene. Dette er underforstått i Scratch.
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!