Kontrol

Kontrol i Scratch

Kontrol i Scratch bruges når vi skal kontrollere noget. Det kan fx være, hvis vi skal hoppe ud af et loop eller hvis en sprite skal noget nyt i spillet. Kontrol er altså som ordet antyder, når vi kontrollere noget i spillet 🙂

Vent (x) sekunder

Når vi venter med noget

I nærværende eksempel siger katten først “Hej med jer!” og venter i 5 sekunder. Derefter siger den “Hyggeligt at møde jer!”.

Scratch læser altså vores koder fra toppen ned mod bunden.

Scratch læser koderne fra toppen og nedad
Efter der er gået 5 sekunder siger katten, “Hyggeligt at møder jer!”

Gentag 10 gange

Gentager et loop 10 gange.

Gentag 10 gange, siger til Scratch at den skal gentage den samme handling ti gange. Du kan altid ændre tallet 10 til et andet. Enten lavere eller højere.

Gentager den samme handling ti gange

I nærværende eksmepel gentager Scratch den samme handling ti gange. Dvs at vores sprite går 10 trin og venter 1 sekund. Derefter går spriten 10 trin igen og venter en gang til i 1 sekund. Sådan bliver spriten altså ved ti gange.

Vi har med andre ord lavet et loop, som looper 10 omgange.

For evigt

For evigt bliver ved med at loope

I modsætning til ovenstående kodeblok om gentag (x) gange, så er dette loop et evighedsloop. Så her bliver vores sprite altså ved med at gå 10 trin, vente 1 sekund, og gentage den samme bevægelse igen og igen.

Her bliver vores sprite ved med at gentage det samme mønster igen og igen og i….

Hvis < > så

Bemærk at dette eksempel kræver kendskab til operatorer og registrering.

Her siger vi til Scratch, at hvis vi gør noget, så skal der ske noget nyt.

Inden for programmering kalder man også disse for if-statements. Dvs at hvis der sker noget så skal programmet opføre sig på en ny måde.

I dette eksemepl bruger jeg operatoren “(x) = (x)” og “Bed om (x)” fra registrering. Se på menuen om disse to blokke, hvis du endnu ikke kender dem.

Hvis svar = 4 siger spriten Jubii! i 2 sekunder

I følgende eksempel spørger vores sprite os om resultatet af regnestykket 2 + 2. Hvis vi svare 4 vil spriten sige “Jubii!” i 2 sekunder. Svare vi derimod ikke 4, vil spriten ikke sige “Jubii!”.

4 er altså adgangen til denne kode, da Scratch ellers ikke vil læse den for os.

Vi svarer 4 i input-feltet

Vi svare 4, og spriten siger “Jubii!”. Tillykke, du har lavet dit første statement i et program – det er en stor ting!

Statements fylder meget i programmering med Scratch. Så øv dig derfor en masse i dem.

Prøv også at svare forkert og se hvad der sker. Får du noget svar?

Hvis < > så ellers

Hvis < > så ellers giver en god oplevelse for brugeren.

Hvad nu, hvis vi gerne vil lave en besked til brugeren, hvis han/hun ikke svare rigtigt på 2 + 2 og skriver 4. I så fald kunne vi bruge blokken “hvis < > så ellers”.

Hvis vi svare forkert siger spriten “Øv, der var desværre forkert!”
Jeg skriver at 2 + 2 er 90 og ser hvad der sker…

Jeg skriver nu 90 og ikke 4. Vi kan se at programmet ikke læser koden med “Jubii!” men i stedet springer hen til koden, der siger “Øv, det var desværre forket!”

Vi sendes ned til “ellers”.

Ps. Det gik lidt hurtigt, og jeg kan se at jeg har skrevet forkert forket. Prøv at lave en, hvor forkert står skrevet korrekt.

Vent indtil < >

Vent indtil < > siger til programmet at det skal vente indtil noget sker.

Denne blok fungere ligesom “hvis < > så”. Der skal altså ske noget før vores sprite gider at lave noget.

I nærværende eksempel beder vi brugeren om, at skrive et tal der er højere end 5. Derefter siger spriten “Korrekt”.

Når brugeren svare et tal højere end 5 siger spriten “korrekt!”

Vi skriver her 55 og sendes videre ned til blokken der siger “Korrekt!”.

Yes, vi angav et tal der var over 5!

Gentag indtil < >

Gentag indtil < > looper

Gentag indtil er et loop. Man kan fx loope 50 gange den samme lyd med et halvt sekunds pause.

Gentager et tilfældigt tal indtil det rammer et tal lavere end 15.

I dette eksempel har vi sat en variabel til at indeholde tilfældige tal mellem 1 og 40.

Så længe variablens tal er over 15 vil vi ikke spille lyden af Meow. Men når tallet er under 15 bliver den afspillet og programmet stopper.

Her er et større eksempel på, hvordan gentag indtil < > sættes igang i et loop.

I det sidste eksempel har jeg benyttet et evighedsloop. Herefter indsat variablet med de tilfældige tal fra 1 – 100. Derefter indsætter jeg blokken “vent 2 sekunder”. Jeg vælger at benytte denne blok, fordi vi så bedre kan se, hvordan programmet hele tiden laver et nyt loop og kommer med nye tal, så længe de er over 15.

Når tallet er under 15 bliver lyden af “meow” afspillet og evighedsloppet stopper.

Stop <alle>

Blokken stop alle stopper vores loop

Blokken “stop alle” stopper vores loop. Du vil møde denne form for stop af loop, hvis du senere vil prøver andre programmeringssprog af. Her kalder man dem bare for break conditions.

Her glider vores sprite rundt indtil tallet når under 15.

I nærværende eksempel glider vores sprite rundt lige så længe, at det tilfældige tal i variablen er højere end 15.

Når tallet ikke er højere end 15, stopper loopet.

Opret en klon (af mig selv)

Opret en klon af mig selv, lader os klone en sprite inde i spriten.

Opret en klon af mig selv-blokken er en rigtig spændende funktion af benytte i et program, fordi den lade os klone sprites i stedet for at vi skulle oprette nye.

Det spare både hukommelse, og så gør det ikke mindst vores programmer langt mere overskuelige.

Når vi klikker på mellemrum klones sprites.

I nærværende eksempel kloner vi vores sprite for hver gang vi trykker på mellemrumstasten.

Vi klikker på mellemrumstasten og kloner spriten.

Når jeg starter som klon

“Når jeg starter som klon” får vores sprite til at gøre noget, når vi kloner den.

I dette eksempel lader vi vores sprite klone og gå til en tilfældig position, samt skifte farve.

Husk at en klon altså fordobles. Man får derfor ret hurtigt mange kloner. Regnestykket er: 1 sprite klones: 1 + 1 = 2 sprites. 2 klones: 2 + 2 = 4. 4 klones: 4 + 4 = 8. 8 klones: 8 + 8 = 16. Dvs: [n + 1 = klon1, n + 2 = klon2… [

Mellemrum kloner, mens “når jeg starter som klon” laver ny farve og går til en tilfældig position på akserne.
En sprites bliver klonet til en masse i dette eksempel.

Slet denne klon

Slet denne klon

Slet denne klon, sletter klonen. Det kan fx være nyttigt, hvis vi ikke ønsker så mange kopier som i ovenstående eksempel, hvor de blev fordoblet.

I modsætning til n + 1 = 2 kloner, er matematikken nu: n – 1 = 1 klon. Sådan fortsætter det med hele tiden kun at blive til en klon for hver gang vi trykker på mellemrum.

Her har jeg klikket på mellemrum 7 gange og får altså 8 bolde.

Fortsætter du med at programmere vil dette også være en teknik, som er brugt. Nogle taler fx om hierakiske træer, hvor man har en forælder(parent) som i dette tilfælde er vores sprite, mens klonerne er børn(children). På den måde kan man se det som et lille familietræ, man får bygget op.