Level 1Lærerveiledning - Straffespark

Skrevet av: Geir Arne Hjelle, Vegard Tuset

Kurs: Scratch
Tema: Blokkbasert, Spill
Fag: Matematikk, Programmering
Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse
Til oppgave

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.

checkOppgaven passer til:

Fag: Matematikk, Programmering

Trinn: 7.-10. trinn

Tema: Koordinater, objektorientert programmering, løkker, variabler, tester

Tidsbruk: Dobbelttime

Bilde av Feliks som tar straffespark

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 eller Keeper skal si noe kan det være utfordrende på grunn av stopp-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 at Ball eller Keeper ikke slutter å bevege seg før etter 2 sekunder. For at snakkeboblen skal bli borte kan man bruke en si []-kloss (uten tekst). Denne kan legges øverst i når grønt flagg klikkes- eller nå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.

Lisens: CC BY-SA 4.0

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!