Scratch - programiranje in reševanje problema

Scratch - programiranje in reševanje problema

Avtor: Svetlana Novak

Učni cilji: Dijak se nauči uporabljati Scratch za reševanje določenih nalog.

Scratch - uvod

Potrebno predznanje:

  • zanke, pogojni stavki
  • spremenljivke
  • naključna števila
  • logične operacije

Scratch: naloga

Scratch - uvod: kaj je Scratch

Kaj je Scratch

Je programski jezik namenjen učenju programiranja preko izdelave računalniških iger. Pri programiranju se uporabljajo barvni grafični bloki, barva pa ozačuje tip ukaza. Programski jezik podpira tudi slovenščino kot jezik v uporabniškem vmesniku.

Scratch podpira večino programerskih konceptov kot so: zaporedje ukazov, zanke, pogojne stavke, spremenljivke, tabele, odziv na dogodke, niti, časovna usklajenost in sinhronizacija, vnos podatkov preko tipkovnice, naključna števila, logične operacije in dinamično interakcijo (snemanje zvoka,urejanje slik).

Večino teh konceptov sem uporabila v nalogi na koncu gradiva.

Koncepti, ki jih Scratch ne podpira pa so: procedure in funkcije, rekurzijo, definiranje lastnih razredov in objektov ter dedovanje in branje/pisanje iz/v datoteko.

(DN3_11.png)
Slika 1: Primer naloge v uporabniškem vmesniku.

Scratch - uvod: Grafični vmesnik

Programe pišemo (sestavljamo) v grafičnem vmesniku, ki sestoji iz: menijske vrstice, ukazne palete, programskega okna, odra in figur.

(DN3_2.png)
Slika 2: Grafični vmesnik programa Scratch.

Scratch - uvod: programiranje

Ukaze (bloke) sestavljamo v program v programskem oknu, ukaze pa vlečemo z miško iz ukazne palete, ki sestoji iz osmih skupin ukazov. Programiranja se v Scratchu uči s pomočjo ukazov svinčnik in štampiljka.

(DN3_3.png)
Slika 3: Skupine ukazov v ukazni paleti.



Skupine ukazov so:

  • Premikanje
  • Izgled
  • Zvok
  • Svinčnik
  • Upravljanje
  • Zaznavanje
  • Operatorji
  • Spremenljivke


Premikanje, zaznavanje in upravljanje so med najpomembnejšimi ukazi v vsaki igrici. Poleg teh najpogostejših ukazov sem v svoji nalogi uporabila še spremenljivke, da sem lahko spremljala uspešnost poznavanja področja, ki je bilo tema igrice (zdrava prehrana). Med operatorji pa sem uporabila naključna števila za naključen izbor vrste hrane.

Scratch - uvod: oder

Oder je namenjen testiranju in izvajanju igre. Na odru spremljamo premikanje figur, igre in animacije. Položaj figure na odru je določen s pomočjo koordinatnega sistema.

(DN3_4.png)
Slika 4: Igralni oder.

Scratch - uvod: figure

Figura je najpomembnejši del igre, kajti figura je nosilec dogajanja v igrah napisanih s Scratchem. Figuro (ali sprite) lahko narišeš sam ali pa uporabiš katerekoli slike s svojega računalnika. Lahko ji spremenimo videz, dodajamo zvok ob določenih situacijah in pišemo programe, kako se bo ob določenih situacijah obnašala (stanje in postopek).

(DN3_5.png)
Slika 5: Figure v naši igrici.

Scratch: naloga

A. scenarij

Ciljna publika: igrica je namenjena mlajši populaciji, ki spoznava zdrav način prehranjevanja skozi izbor dobre/slabe hrane. Boljša hrana je označena s pozitivnimi točkami, slaba pa z negativnimi.

Kratek opis igrice: Naš glavni junak igre je maček, ki se prehranjuje z zdravo prehrano (glej sliko 5: Figure v naši igrici). Našega glavnega junaka premikamo s puščicami (gor, dol, levo, desno). Imamo tri (3) zdrave in tri nezdrave elemente hrane. Ko maček hrano poje, se čez 3 sekunde znova pojavi naključni element hrane. Ko maček zaužije zdrav element hrane, se točke seštevajo, če pa zaužije nezdrav element hrane, se točke odštevajo.

Načrt:

Elementi igreDejanjeProgram napišemo elementu
Maček (Sprite1)Premika se v vse smeri. Upravljamo ga s puščicami na tipkovnici ←,↑,→,↓. Na začetku postavi rezultat na 0.

Maček

(macek.png)
Jabolko (Sprite2)Naključno se pojavi na odru.

Jabolko

(jab.png)
Obloženi kruhek (Sprite3)Naključno se pojavi na odru.

Obloženi kruhek

(obl.png)
Jagoda (Sprite4)Naključno se pojavi na odru.

Jagoda

(jag.png)
Pivo (Sprite5)Naključno se pojavi na odru.

Pivo

(pivo.png)
Banana (Sprite6)Naključno se pojavi na odru.

Banana

(ban.png)
Hamburger (Sprite7)Naključno se pojavi na odru.

Hamburger

(ham.png)
NočemGumb, na katerega kliknemo, ko želimo preskočiti kakšno vrsto hrane.

Hamburger

(noc.png)
Maček in ostale figure (Sprite2-Sprite7)Ko se maček dotakne figur, le-te izginejo in pojavi se nova naključna figura na naključnem položaju. (Sprite2-Sprite7).Sprite2-Sprite7




(DN3_40.png)
Slika 6: Igralni oder v moji igrici.

Scratch: igranje igre

Prenesi igro

Animacija igranja igre.

Scratch: naloga

B. Programiranje

  1. Naredimo figuro Maček in sprogramiramo premikanje (v štirih smereh; levo, desno, gor, dol)
  2. Naredimo figure elementov hrane:

    • elementi se izbirajo naključno,
    • naključno se izbira položaj figur hrane,
    • sprogramiramo tudi, kaj se zgodi, ko se maček dotakne figur hrane: figure izginejo ter se ponovno naključno izbirajo in pojavijo.
  3. Naredimo figuro Nočem in jo sprogramiramo:

    • preskočimo hrano, za katero nočemo, da jo maček poje (zdravo ali nezdravo),
    • pri negativni vsoti zaključimo igro.
  4. Sprogramiramo tudi ozadje: na začetku je puščava in na koncu, če je vsota negativna, preklopimo na ozadje konec.

Scratch - programiranje glavnega junaka Mačka

Maček se premika levo, desno, gor, dol. Ko pride do roba, se pojavi na drugi strani okna s tem, da se premika v isto smer. Ko bo vsota zbrane hrane negativna, se figura skrije in v figuri Nočem zaključimo s programom.

Ukazi mačka so sestavljeni iz petih delov:

  1. del:

    • Figura se nariše, ko je pritisnjena zelena zastavica (izberemo iz menija upravljanje),
    • v neskončni zanki (meni upravljanje, ukaz za vedno), se spremlja vrednost spremenljivke vsota - ko ta postane negativna oz. manjša od 0, se figura skrije.
  2. do 5. del: premikanje figure v smereh levo, desno, gor, dol:

    • premikanje je vezano na tipkanje po tipkah puščica dol, gor, levo, desno,
    • ko pritisnemo tipko, se glede na to, katera je bila pritisnjena, maček obrne v tisto smer (tipka dol, obrni se v smeri 180, ...), nato se premakne za 10 korakov (ta in zgornji ukaz iz menija premikanje),
    • ko pridemo čez rob, se maček pojavi na drugi strani oz. nastavimo mu položaj na drugi strani oz. na nasprotnem robu (primer: puščica dol in ko pridemo do spodnjega roba, se y nastavi na 150, ...)
    • ukazi se sprožajo s tipkami in ne z ukazom, ko je pritisnjena zelena zastavica.



(DN3_6.png)
Slika 7: Koda za figuro Maček.

Scratch - programiranje figur za hrano

Figure imajo različne vrednosti: za zdravo hrano (jabolko, jagoda in banana) se prišteje 5 točk, za ostalo se nam 10 točk odšteje. Hkrati je na odru samo ena vrsta hrane, ki jo prikazujemo naključno in na naključnih položajih. Program se zaključi, ko je vsota manj kot 0. Nova hrana se prikaže, ko kliknemo gumb Nočem ali pa se maček dotakne hrane. Koda za zdravo in nezdravo hrano se razlikuje v številu točk.
Čeprav je figur več, se spodnji ukazi oz. programska koda posameznih figur hrane med seboj razlikujejo po obleki in zaporedni številki, ki jim omogoča, da se posamezna figura prikaže.

Program figur za hrano sestoji iz ukazov:

  1. Program figur se začne izvajati po ukazu pritisni zeleno zastavico. Ukaz je v meniju upravljanje. Figuro na začetku skrijemo (ukaz skrij iz menija izgled) in spremenimo velikost na 30% (iz menija izgled).
  2. Nato imamo neskončno zanko, v kateri se po vrsti izvaja:

    • če je stanje spremenljivke Nočem na 1 (z miško smo kliknili na figuro Nočem), figuro skrijemo,
    • sledi: če je izbrana številka od 2 do 7 (figure od Sprite2 do Sprite7), in spremenljivka pokazi je 0 (to pomeni, da se je prejšnja figura dotaknila mačka in skrila), jo postavi naključno na igralno polje, jo prikaži in postavi spremenljivko pokazi na 1 , Nocem pa na 0.
    • sledi: ali se je maček dotaknil figure: da - skrij figuro, izberi indeks (številko) nove naključne figure, pokazi daj na 0 in spremeni vsoto (prištej ali odštej v odvisnosti od vrste hrane). Da se program lepo izvaja, počakamo 3 sekunde.
    • sledi pogoj za konec igre: skrij figuro, če je vsota negativna.

      (DN3_7.png)
      Slika 8: Koda za zdravo hrano.

Scratch - programiranje figur za hrano, ki jo želimo preskočiti

Uporabimo gumb Nočem. Program nam naključno izbere novo hrano. Ko je vsota enaka 0, se nam program zaključi.

Ukazi figure Nočem, so sestavljeni iz dveh delov:

  1. naključno generiranje figur hrane (glej prejšnjo stran),
  2. postavitev figure na igralno polje.

Pod 1:

  • hrana se generira s postavitvijo spremenljivke Nocem na 1,
  • sledi zakasnitev, ker se programi izvajajo v nitih, in bi se figure hrane generirale ena čez drugo, in s tem to onemogočimo,
  • v spremenljivko skrij shranimo vrednost figure hrane. Vrednost se generira naključno,
  • pokazi na 0 - spremenljivka omogoča prikaz figure hrane.



Pod 2:

  • figura se nariše po izvedbi ukaza pritisni zeleno zastavico. Ukaz je v meniju upravljanje,
  • Sledi neskončna zanka (meni upravljanje, ukaz za vedno), v zanki se spremlja vrednost spremenljivke vsota - ko ta postane negativna oz. manjša od 0, se figura skrije in po 3 sekundah program zaključi.

    (DN3_8.png)
    Slika 9: Koda za preskočiti neželeno hrano.

Scratch - programiranje ozadja

Ozadje ima dve sliki: začetna (hkrati je to ozadje igre) in končna, ko je igre konec.

Potek programiranja:

  1. Ozadje je figura, ki se nariše, ko je pritisnjena zelena zastavica (izberemo iz menija upravljanje),
  2. na začetku je izbran izgled ozadja puščava (ozadje desert). Ukaz je izbran iz menija izgled.
  3. Sledi neskončna zanka (meni upravljanje, ukaz za vedno),

    • v zanki se spremlja vrednost spremenljivke vsota - ko ta postane negativna oz. manjša od 0, se zamenja ozadje na konec.

      (DN3_9.png)
      Slika 10: Koda ozadja.
0%
0%