Level 3Noreg rundt

Skrevet av: Geir Arne Hjelle

Oversatt av: Stein Olav Romslo

Kurs: Scratch
Tema: Blokkbasert, Spill
Fag: Matematikk, Programmering, Samfunnsfag
Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse
Bilde av BokmålPå Bokmål

Introduksjon

Bli med på ei rundreise i Noreg! Me skal lage eit spel der du styrar eit helikopter over eit kart over Noreg, medan du raskast mogleg prøver å finne stader og byar du blir beden om å besøke.

Illustrasjon av eit Noreg rundt-spel

Steg 1: Eit kart over Noreg

Fyrst legg me inn eit kart over Noreg som bakgrunn. Seinare skal me bruke helikopteret til å besøke stader på dette.

checkSjekkliste

Kart over Noreg

Det finst mengdar av kart på Internett. Det kartet me brukar i denne oppgåva er laga av Kartverket og delt slik at alle kan bruke det slik dei vil. Sist i denne oppgåva finn du beskrivingar for å bruke andre kart.

Steg 2: Styr helikopteret

No skal me lage eit helikopter som me kan styre rundt over kartet. Me startar med å programmere eit skript som let oss kontrollere helikopteret med piltastane.

checkSjekkliste

  • startar på same stad. Lag dette skriptet:

    når @greenFlag vert trykt på
    set storleik til (25) %
    gå til x: (0) y: (0)
    
  • når @greenFlag vert trykt på
    set storleik til (25) %
    gå til x: (0) y: (0)
    gjenta for alltid
        viss <tasten [pil opp v] er trykt?>
            peik i retning (0 v)
            gå (2) steg
        slutt
    slutt
    

flagTest prosjektet

Klikk på det grøne flagget.

checkSjekkliste

Me skal programmere dei andre piltastane òg.

  • når @greenFlag vert trykt på
    set storleik til (25) %
    gå til x: (0) y: (0)
    gjenta for alltid
        viss <tasten [pil opp v] er trykt?>
            peik i retning (0 v)
            gå (2) steg
        slutt
        viss <tasten [pil høyre v] er trykt?>
            peik i retning (90 v)
            gå (2) steg
        slutt
        viss <tasten [pil ned v] er trykt?>
            peik i retning (180 v)
            gå (2) steg
        slutt
        viss <tasten [pil venstre v] er trykt?>
            peik i retning (-90 v)
            gå (2) steg
        slutt
    slutt
    

flagTest prosjektet

Klikk på det grøne flagget.

Utfordring: Hastigheitsvariabel

Viss du ser i skriptet har me repetert talet 2 heile fire gonger. Dette gjer det vanskelegare for oss å endre kor fort helikopteret beveger seg i framtida.

Viss du vil kan du prøve å lage ein ny variabel som heiter hastigheit. Så kan du setje denne variabelen lik 2 etter at det grøne flagget blir trykka på. Til slutt kan du bytte ut gå 2 steg-klossane med hastigheitsteg-klossar.

Steg 3: Legg til eit reisemål

No som helikopteret kan flyge rundt omkring i Noreg kan me gi spelaren eit mål med reisa.

checkSjekkliste

  • Bilete av ein heilt rund raud disk
  • Bilete av x- og y-koordinatane i Scratch
  • når @greenFlag vert trykt på
    send meldinga [Stad: Hønefoss v]
    
    når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    vent til <rører [Helikopter v]?>
    sei [Fann Hønefoss!] i (2) sekund
    

    Legg merke til at i gå til-klossen brukar me same koordinatar som dei me fann over. Det tyder at om du brukar ditt eige reisemål må du bytte desse tala med dei du fann ved å sjekke figuren.

flagTest prosjektet

Klikk på det grøne flagget.

Steg 4: Eit nytt reisemål

La oss leggje til eit nytt reisemål me kan reise til etter å ha besøkt det fyrste!

checkSjekkliste

  • når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    vent til <rører [Helikopter v]?>
    sei [Fann Hønefoss!] i (2) sekund
    send meldinga [Stad: Tromsø v]
    
    når eg får meldinga [Stad: Tromsø v]
    gå til x: (103) y: (121)
    vent til <rører [Helikopter v]?>
    sei [Fann Tromsø!] i (2) sekund
    

    Bruk dine eigne koordinater (og namn) for det andre reisemålet òg.

flagTest prosjektet

Klikk på det grøne flagget.

Steg 5: Skjul reisemåla

Førebels er ikkje spelet så vanskeleg: du må berre styre helikopteret til den raude disken. For å lage eit skikkeleg spel vil me gøyme den raude disken, og heller berre fortelje spelaren til kva stad ho skal flyge!

checkSjekkliste

Fyrst vil me fortelje spelaren kor ho skal flyge.

  • når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    set [Reis til v] til [Hønefoss]
    vent til <rører [Helikopter v]?>
    sei [Fann Hønefoss!] i (2) sekund
    send meldinga [Stad: Tromsø v]
    
  • når eg får meldinga [Stad: Tromsø v]
    gå til x: (103) y: (121)
    set [Reis til v] til [Tromsø]
    vent til <rører [Helikopter v]?>
    sei [Fann Tromsø!] i (2) sekund
    

flagTest prosjektet

Klikk på det grøne flagget.

checkSjekkliste

No er me klare til å gøyme den raude disken. Me prøvar fyrst det enklaste og mest opplagte:

  • når @greenFlag vert trykt på
    gøym
    send meldinga [Stad: Hønefoss v]
    

flagTest prosjektet

Klikk på det grøne flagget.

Hmm... Spelet oppdatar ikkje at me reiser til Barcelona lengre. Problemet er at sidan me gøymer disken vil den ikkje lengre berøre Helikopter. Me må finne ein annan måte å gjere disken usynleg på.

checkSjekkliste

  • når @greenFlag vert trykt på
    vis
    set [gjennomsiktig v]-effekt til (100)
    send meldinga [Stad: Hønefoss v]
    

    Me har lagt til ein vis-kloss for å vere på den sikre siden (me har jo oppdaget at spelet ikkje virkar om Stad-figuren er gøymt).

flagTest prosjektet

Klikk på det grøne flagget.

Steg 6: Vis reisemålet etter at det blir funne

Det er kult om du kan vise kor reisemålet faktisk er etter at spelaren har funne det.

checkSjekkliste

  • når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    set [Reis til v] til [Hønefoss]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Stad: Tromsø v]
    
    når eg får meldinga [Stad: Tromsø v]
    gå til x: (103) y: (121)
    set [Reis til v] til [Tromsø]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    
  • når eg får meldinga [Fann stad v]
    set [gjennomsiktig v]-effekt til (0)
    lag avtrykk
    set [gjennomsiktig v]-effekt til (100)
    

flagTest prosjektet

Klikk på det grøne flagget.

checkSjekkliste

  • når @greenFlag vert trykt på
    slett
    vis
    set [gjennomsiktig v]-effekt til (100)
    send meldinga [Stad: Hønefoss v]
    
  • når eg får meldinga [Fann stad v]
    start lyden [rattle v]
    set [gjennomsiktig v]-effekt til (0)
    lag avtrykk
    set [gjennomsiktig v]-effekt til (100)
    

flagTest prosjektet

Klikk på det grøne flagget.

Steg 7: Tida går

No skal me gjere spelet endå meir utfordrande ved å leggje på ei tidsavgrensing.

checkSjekkliste

  • når @greenFlag vert trykt på
    set [Tid v] til [30]
    gjenta til <(Tid) = [0]>
        vent (1) sekund
        endra [Tid v] med (-1)
    slutt
    send meldinga [Avslutt v]
    

    Legg merke til at me òg sender ut ei ny melding Avslutt når tida er ute. Denne brukar me til å avslutte spelet.

  • når eg får meldinga [Avslutt v]
    stopp [alle v] :: control
    

flagTest prosjektet

Klikk på det grøne flagget.

checkSjekkliste

Som ein bonus kan me gi spelaren litt ekstra tid kvar gong ho finn eit reisemål.

  • når eg får meldinga [Fann stad v]
    endra [Tid v] med (10)
    

Steg 8: Fleire stader å besøke

Til slutt vil me leggje til fleire stader å besøke for å gjere spelet meir spanande!

checkSjekkliste

For å leggje til nye stader må me gjere det same som me gjorde tidlegare i oppgåva (under steg 3 og 4). Det enklaste er å kopiere kodeklossane me allereie har laga, og så endre på dei.

  • når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    set [Reis til v] til [Hønefoss]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Stad: Tromsø v]
    
    når eg får meldinga [Stad: Tromsø v]
    gå til x: (103) y: (121)
    set [Reis til v] til [Tromsø]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Stad: Lillehammer v]
    
    når eg får meldinga [Stad: Lillehammer v]
    gå til x: (14) y: (-94)
    set [Reis til v] til [Lillehammer]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Stad: Bergen v]
    
    når eg får meldinga [Stad: Bergen v]
    gå til x: (-52) y: (-107)
    set [Reis til v] til [Bergen]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Stad: Narvik v]
    
    når eg får meldinga [Stad: Narvik v]
    gå til x: (91) y: (90)
    set [Reis til v] til [Narvik]
    vent til <rører [Helikopter v]?>
    send meldinga [Fann stad v] og vent
    send meldinga [Avslutt v]
    

flagTest prosjektet

Klikk på det grøne flagget.

saveLagre prosjektet

No har me laga eit Noreg rundt-spel!

Du kan utfordre venene og familien din til å reise rundt i Noreg saman med deg! Viss du vil dele spelet på Internett kan du trykkje Legg ut øvst til høgre på skjermen.

Fleire utfordringar

Det er alltid mogleg å utvide spelet. Under finn du nokre idear du kan prøve deg på!

Utfordring: Endå fleire reisemål

Det er ikkje noko grense for kor mange reisemål du kan leggje til i spelet. Har du reisemål frå alle delar av landet? Kanskje du kan besøke ein stad i kvart fylke?

Utfordring: Ei ordentleg avslutning

Slik spelet er no sluttar berre helikopteret å flyge når tida er ute eller når spelaren har funne alle reisemåla. Kan du leggje til ei ordentleg avslutning? Den bør gi spelaren tilbakemelding på om ho vann ved å finne alle reisemåla eller tapte fordi tida gjekk ut.

Ein måte å gjere det på er å lage to nye meldingar Vann og Tapte som blir sendt i staden for Avslutt, avhengig av om spelaren vann eller tapte. Du kan lage to nye bakgrunnar ved å kopiere kartet og skrive ein passande tekst på bakgrunnen. Desse kan du vise når spelet er vunne eller tapt.

Utfordring: Reisemål i tilfeldig rekkefølgje

Dette er ei skikkeleg utfordring! Slik det er no kjem reisemåla alltid i same rekkefølgje. Kan du gjere det slik at rekkefølgja blir tilfeldig?

Det finst inga måte å sende ut tilfeldige meldingar i Scratch. I staden kan me tilfeldig bestemme om me skal be spelaren reise til eit reisemål, eller berre gå vidare til neste reisemål på lista.

  • definer sjekk stad
    viss <<(tilfeldig tal frå (1) til (Antal stader totalt)) > [1]> eller <rører fargen [#ff0000]?>>
        set [bruk stad v] til [nei]
    elles
        set [bruk stad v] til [ja]
    slutt
    
    når eg får meldinga [Stad: Hønefoss v]
    gå til x: (6) y: (-112)
    sjekk stad
    viss <(bruk stad) = [ja]>
        set [Reis til v] til [Hønefoss]
        vent til <rører [Helikopter v]?>
        send meldinga [Fann stad v] og vent
    slutt
    send meldinga [Stad: Tromsø v]
    

    Klossen rører fargen brukast for å sjekke om me allereie har besøkt eit reisemål. I så fall vil me jo ha stempla raudfarge på kartet.

Korleis lage eigne kart

Heilt til slutt ser me på korleis du kan reise rundt i eigne kart eller andre kart som du finn på Internett.

checkSjekkliste

Opphavsrett

Nokon har laga dei karta du finn på Internett, og som regel har dei opphavsretten til desse karta. I praksis tyder det at dei eig karta. Dersom du vil bruke karta i eit spel du gjer tilgjengeleg for andre (brukar Legg ut-knappen i Scratch) må du undersøke om det er greitt for dei som har laga karta.

Mykje materiell på Internett, inkludert kartet me har brukt i denne oppgåva, er lagt ut med ein lisens som seier at du kan bruke det så lenge du refererer til dei som opphavleg laga materiellet. Det er lett å gjere i Scratch. Klikk på Se prosjektsiden øvst til høgre. Då kjem du til ei side der du kan beskrive prosjektet. Ein av boksane heiter Merknader og bidragsytere. Her kan du nemne dei som opphavleg har laga til dømes kartet du brukar.

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!