Životi i uvjeti
Igra mirne ruke s micro:bitom: varijabla životi, uvjet if / else, žica kao prekidač na pinu, start i cilj dodirom logotipa i štoperica.

Ali kako igra zna da je gotova? Ona stalno postavlja jedno jednostavno pitanje: imam li još života? Ako je odgovor da, igra se nastavlja. Ako je odgovor ne, pokazuje kraj igre.
Takvo pitanje zovemo uvjet.
Danas ćemo:
- napraviti varijablu zivoti koja pamti koliko života imamo;
- naučiti blok if / else (ako / inače) kojim program donosi odluke;
- napraviti igru mirne ruke: žica i petlja bit će prekidač spojen na pin micro:bita;
- igru pokretati i završavati dodirom logotipa;
- izmjeriti koliko je igra trajala i prikazati vrijeme na ekranu bez pomicanja brojki.
Radimo kao i dosad:
predvidi ⇒ pokreni ⇒ promijeni jednu stvar ⇒ ponovno testiraj ⇒ objasni rezultat
Materijal
- micro:bit V2, USB kabel i battery pack
- 2 × krokodil štipaljke
- Kruta gola bakrena žica, oko 40 cm – staza (pripremi je voditelj)
- Kraći komad iste žice, oko 10 cm – petlja
- Kartonska kutija – postolje za stazu
- Izolirna traka
Vježba 1: Tri života
Tehnika: varijabla pamti broj života
Varijablu već poznaješ iz brojača bodova. Sada će varijabla brojati unatrag: počinjemo s tri života, a svaki „pogodak” oduzima jedan. Za početak će pogodak biti protresanje micro:bita.
U MakeCodeu varijablu zovemo zivoti, bez kvačica, jer imena u programu pišemo bez slova č, ć, š, ž i đ.

Smanjiti za 1 znači dodati −1. U MakeCodeu to radi blok change zivoti by -1.
Predvidi
- Što će micro:bit prikazati na početku?
- Što će prikazati nakon prvog protresanja? A nakon trećeg?
- Što misliš, što će se dogoditi kad ga protreseš i četvrti put?
Isprobaj
Pokreni program u simulatoru i četiri puta klikni na SHAKE. Zatim ga prenesi na micro:bit i nježno ga protresi.
Zaključak: Nakon trećeg protresanja micro:bit pokaže 0, a zatim −1, −2 i tako dalje. Program broji, ali ne zna da je igra gotova. Treba mu pravilo: kad više nema života, igra je gotova.
Vježba 2: Uvjet: ako… inače
Tehnika: program donosi odluku
Uvjet je pitanje na koje je odgovor da ili ne. I ti stalno odlučuješ prema uvjetima:
- Ako pada kiša, uzmi kišobran. Inače uzmi kapu.
- Ako je semafor za pješake zelen, prijeđi cestu. Inače čekaj.
U MakeCodeu to radi blok if / else iz kategorije Logic. U njega stavimo pitanje, na primjer je li zivoti jednako 0?. Za takvo pitanje koristimo blok za usporedbu iz iste kategorije:
- = – jednako
- > – veće od
- < – manje od
Ako je odgovor da, micro:bit izvrši blokove u dijelu if. Ako je odgovor ne, izvrši blokove u dijelu else. Nikad ne izvrši oba dijela.
Predvidi
- Što će se prikazati nakon prvog, drugog i trećeg protresanja?
- Što će se prikazati nakon četvrtog protresanja? Pažljivo: koliko je tada zivoti? Je li to jednako 0?
Isprobaj
Složi program i protresi micro:bit četiri puta.
Nakon trećeg protresanja vidimo lubanju. Ali nakon četvrtog se pojavi −1! Životi su pali na −1, a −1 nije jednako 0, pa je micro:bit izvršio dio else.
Popravi
Dodajmo još jedan uvjet: život oduzimamo samo ako ga još imamo.

Prvi uvjet nema dio else: ako nemamo života, ne radimo ništa. Tipke A+B vraćaju igru na početak, kao reset u brojaču bodova.
Promijeni jednu stvar
Neka igra počne s 5 života. Koliko puta sada moraš protresti micro:bit da vidiš lubanju? Na koliko mjesta u programu moraš promijeniti broj 3?
Dodatni izazov
Kad ostane samo jedan život, neka micro:bit umjesto broja pokaže iznenađeno lice. Pomoć: klikni na + na dnu bloka if / else i dobit ćeš još jedno pitanje, else if (inače, ako).
Vježba 3: Izrada igre mirne ruke
Tehnika: žica i petlja su prekidač
U igri mirne ruke petlja kreće s dna vijugave žice. Ti je vodiš prema gore i skidaš s gornjeg kraja žice, a da žicu ne dodirneš. Svaki dodir oduzima život.
Prisjeti se Breadboard laboratorija: kad pritisneš tipkalo, njegovi se metalni dijelovi dodirnu i strujni krug se zatvori. Žica i petlja rade isto. Kad se dodirnu, zatvore krug između pina P1 i GND-a, a micro:bit to primijeti.
Izrada staze
- Savij dugu žicu u valove. Ne pravi preoštre zavoje, jer petlja mora proći kroz njih. Donjih oko 8 cm žice ostavi ravno.
- Okreni kutiju otvorom prema stolu. Ravni donji kraj žice probodi kroz vrh kutije, tako da nekoliko centimetara gole žice uđe u kutiju, a žica stoji uspravno. Kutija je postolje, a gornji kraj žice ostaje slobodan u zraku.
- Odmah iznad kutije omotaj oko 3 cm izolirne trake. To je start: tu petlja miruje prije igre.
- Vrh žice omotaj trakom da nikoga ne ubode. Neka traka bude tanka, jer petlja mora proći preko nje.
- Savij kratku žicu oko olovke u zatvoren kružić, a ostatak žice neka bude ručka. Ručku omotaj izolirnom trakom.
- Navuci petlju odozgo na žicu i spusti je do starta, na traku.
Spajanje
Micro:bit s battery packom leži na stolu pokraj kutije, blizu starta, tako da logo možeš dotaknuti drugom rukom.
- Staza (goli kraj žice unutar kutije) ⇒ krokodil štipaljka ⇒ P1
- Petlja (kraj ručke) ⇒ krokodil štipaljka ⇒ GND

Štipaljku za stazu pričvrsti na žicu unutar kutije, a njezin kabel izvuci ispod ruba kutije do micro:bita. Tako ti štipaljka ne smeta u igri. Provjeri da se dvije krokodil štipaljke ne dodiruju. Kad igraš, drži petlju samo za ručku s trakom.
Napravi novi projekt!
Ne nastavljaj u programu semafora iz prošle lekcije. Tamo je pin P1 slao struju žutoj LED-ici. Kad bi takav pin dodirnuo GND, napravio bi kratki spoj.
U igri mirne ruke pin P1 samo sluša je li spojen s GND-om. Zato je dodir žice i petlje siguran, isto kao pritisak tipkala.
Pin koji šalje i pin koji sluša
U semaforu je pin bio izlaz: micro:bit je preko njega slao 1 ili 0 i tako palio i gasio LED-icu.
Danas je pin ulaz: micro:bit ništa ne pali, nego provjerava je li pin spojen s GND-om. Tipke A i B iznutra rade na isti način.
Vježba 4: Igra mirne ruke sa startom i ciljem
Tehnika: jedan dodir, dvije odluke
Sada spajamo sve: živote iz vježbe 2 i prekidač iz vježbe 3. Igru ćemo pokretati i završavati dodirom logotipa.
Logo je zlatni znak iznad ekrana micro:bita V2. Osjeti dodir prsta, kao tipka. Blok on logo touched iz kategorije Input reagira čim ga dotakneš.
Kako se igra:
- Petlja miruje na startu, na traci na dnu žice.
- Drugom rukom dotakni logo: igra počinje.
- Vodi petlju prema gore, a da ne dotakneš žicu.
- Kad petlju skineš s gornjeg kraja žice, ponovno dotakni logo: igra je gotova.
Igra zato mora pamtiti traje li ili ne. To pamti varijabla igraTraje. Ona ne pamti broj, nego samo da ili ne: u MakeCodeu true (istina, da) ili false (laž, ne), iz kategorije Logic.
Isti dodir logotipa radi dvije različite stvari. Kad igra ne traje, pokreće je. Kad igra traje, završava je. O tome odlučuje uvjet AKO igraTraje.
U bloku forever uvjeti su jedan unutar drugoga:
- prvi pita traje li igra?;
- drugi pita je li petlja dotaknula žicu?;
- treći pita je li to bio zadnji život?.
Drugo pitanje postavljamo samo dok igra traje, a treće samo nakon dodira.
Blok pin P1 is pressed također se nalazi u kategoriji Input. Odgovor je da dok god se petlja i žica dodiruju. Blok forever to pitanje postavlja opet i opet, mnogo puta u sekundi.
Zašto ne koristimo blok on pin P1 pressed?
Postoji i događaj on pin P1 pressed, ali on reagira tek kad kratak dodir završi, kad odmakneš petlju. A ako petlja dulje stoji na žici, uopće ne reagira! Igra mora reagirati odmah, zato pitamo pin P1 is pressed unutar bloka forever.
Za ton koristimo blok play tone s opcijom in background, kao u semaforu.
Predvidi
- Što će micro:bit pokazati prije nego što dotakneš logo?
- Što će se dogoditi ako dotakneš žicu prije nego što dotakneš logo?
- Program nakon svakog dodira žice čeka jednu sekundu. Što misliš, što bi se dogodilo bez te pauze?
Isprobaj
Najprije odigraj igru s pauzom.
Ako dodir žice ne oduzme život, provjeri:
- jesi li pokrenuo/la igru dodirom logotipa;
- je li staza spojena na P1, a petlja na GND;
- drži li krokodil štipaljka golu žicu, a ne traku;
- dodiruju li se štipaljke međusobno.
Zatim izbaci blok pause i samo jednom kratko dotakni žicu.
Zaključak: Bez pauze jedan dodir odnese sva tri života. Petlja dodiruje žicu djelić sekunde, ali forever u tom djeliću sekunde postavi pitanje mnogo puta i svaki put oduzme život. Pauza od jedne sekunde znači: jedan dodir je jedan život. Mnoge video-igre rade isto: nakon pogotka si kratko neranjiv.
Vrati pauzu u program.
Promijeni jednu stvar
- Promijeni pauzu s 1000 ms na 300 ms. Je li igra sada teža ili lakša? Zašto?
- Promijeni broj života. Kolika je igra najzabavnija: s jednim, tri ili pet života?
Pošteno igranje
Logo na kraju dotakni tek kad si petlju stvarno skinuo/la sa žice. Micro:bit ne zna gdje je petlja, to znaš samo ti.Vježba 5: Koliko je trajalo?
Tehnika: štoperica i vrijeme bez pomicanja brojki
Micro:bit ima vlastiti sat. Blok running time (ms) iz kategorije Input kaže koliko je milisekundi prošlo otkad je program počeo. Od toga ćemo napraviti štopericu:
- Na startu zapamtimo koliko pokazuje sat: pocetak = running time.
- Na cilju izračunamo koliko je prošlo: vrijeme = running time − pocetak.
Na primjer, ako je igra počela kad je sat pokazivao 5000 ms, a završila kad je pokazivao 17000 ms, igra je trajala 17000 − 5000 = 12000 ms, a to je 12 sekundi. Milisekunde pretvaramo u sekunde tako da ih podijelimo s 1000 i zaokružimo (blok round iz kategorije Math).
Kako prikazati 12 bez pomicanja?
Blok show number jednu brojku prikaže mirno, ali broj od dvije brojke, poput 12, prolazi preko ekrana. Ako trepneš, propustio/la si ga.
Ekran micro:bita ima 25 točkica: 5 redova po 5. Zato ćemo vrijeme prikazati točkicama: jedna točkica je jedna sekunda. Točkice se pale kao kad pišeš u bilježnicu: slijeva nadesno, a kad se red napuni, prelazimo u sljedeći red.
- Jedan pun red je 5 sekundi.
- 12 sekundi su dva puna reda i još dvije točkice.
- Pun ekran znači 25 sekundi ili više.
Točkice brojiš u petice: pet, deset, petnaest… To ide brže nego čekati da broj prođe ekranom.
Funkciju prikaziVrijeme dobivaš gotovu u projektu. Evo kako radi:
- x je stupac (od 0 lijevo do 4 desno), a y je red (od 0 gore do 4 dolje).
- Blok plot x y iz kategorije Led upali točkicu u stupcu x i redu y.
- Nakon svake točkice x se poveća za 1, pa je sljedeća točkica desno od nje.
- Kad x dođe do 5, red je pun: x se vraća na 0, a y se poveća za 1, pa nastavljamo u sljedećem redu.
Tipka B prikaže točan broj sekundi, s pomicanjem. Njome provjeriš jesi li dobro prebrojio/la točkice.
Predvidi
- Koliko točkica će se upaliti ako igra traje 7 sekundi? U kojim redovima?
- Kako će izgledati ekran nakon 20 sekundi?
- A nakon 40 sekundi?
Isprobaj
Odigraj igru, prebroji točkice i zatim pritisni B. Je li broj jednak tvom brojanju?
Promijeni jednu stvar
Ako ti igra traje dulje od 25 sekundi, ekran se napuni. Neka jedna točkica bude 2 sekunde: umjesto s 1000 podijeli s 2000. Koliko sekundi sada znači pun ekran?
Dodatni zadaci
Za one koji su sve završili. Rješavaj ih redom.
1. Težina
Prije starta tipka A mijenja broj života: 5 ⇒ 3 ⇒ 1 ⇒ 5…, od najlakše prema najtežoj Micro:bit pokaže odabrani broj (jednu brojku, pa se ne pomiče).
- Napravi varijablu pocetniZivoti i na početku je postavi na 5, najlakšu težinu.
- Kad dotakneš logo za start, zivoti postavi na pocetniZivoti, a ne na 3.
- Tipka A smije mijenjati težinu samo dok igra ne traje. Inače bi netko usred igre mogao dodati sebi živote! Pomoć: blok not iz kategorije Logic okreće odgovor, pa not igraTraje znači igra ne traje.
2. Slike za živote
Umjesto broja neka micro:bit za svaki broj života pokaže drugu sliku. Za 5 života trebaš 5 slika, na primjer:
- 5 – veliko srce
- 4 – malo srce
- 3 – sretno lice
- 2 – iznenađeno lice
- 1 – tužno lice
Možeš nacrtati i vlastite slike blokom show leds. Napravi funkciju prikaziZivote s blokom if / else if i pozovi je svugdje gdje si prije prikazivao/la broj života.
3. Vremensko ograničenje
Igru treba završiti na vrijeme, a rok ovisi o težini: više života znači lakšu igru i više vremena. Na primjer, rok je 10 sekundi za svaki početni život:
- 5 života – 50 sekundi
- 3 života – 30 sekundi
- 1 život – 10 sekundi
Na startu izračunaj rok = pocetniZivoti × 10. U bloku forever, dok igra traje, provjeri je li prošlo više od roka: running time − pocetak > rok × 1000. Ako jest, igra je gotova i micro:bit pokaže uspavano lice: bio/la si prespor/a.
Pomoć: vrijeme provjeri prije dodira žice, ovako: AKO je isteklo vrijeme … INAČE AKO je pin P1 pritisnut …. Broj 10 prilagodi svojoj stazi, da igra ne bude ni prelagana ni preteška.
Rješenje sva tri zadatka:
Završni izazov: Tko ima najmirniju ruku?
Odigraj igru tri puta i svaki put zapiši koliko ti je života ostalo i koliko je sekundi igra trajala.
| Igra | Preostali životi | Vrijeme (s) |
|---|---|---|
| 1. | ||
| 2. | ||
| 3. |
Je li ti bolje išlo kad si žurio/la ili kad si išao/la polako?
Zatim nekome objasni svoj program:
- Zašto isti dodir logotipa jednom pokreće, a drugi put završava igru?
- Koje pitanje postavlja svaki od uvjeta u bloku forever?
- Zašto nakon dodira žice čekamo jednu sekundu?
- Kako micro:bit izračuna koliko je igra trajala?
Ako to možeš objasniti, razumiješ uvjete, a ne samo blokove.
Gdje ćemo ovo još koristiti?
Životi, uvjeti i prekidač na pinu vratit će se kad dobijemo robote. I robot će imati živote, a prekidač na pinu javit će mu kad ga nešto dotakne.
Što smo naučili?
- Varijabla zivoti pamti koliko života imamo. Na početku je postavimo na 3, a svaki pogodak je smanji za 1.
- Uvjet je pitanje na koje je odgovor da ili ne.
- Blok if / else izvrši jedan dio programa ako je odgovor da, a drugi ako je odgovor ne. Nikad ne izvrši oba.
- Za usporedbu brojeva koristimo =, > i <.
- Uvjet zivoti = 0 nije ispunjen kad životi padnu na −1. Zato život oduzimamo samo ako je zivoti > 0.
- Uvjet može biti unutar drugog uvjeta.
- Žica i petlja rade kao prekidač: kad se dodirnu, zatvore krug između pina P1 i GND-a.
- Pin može biti izlaz (šalje struju, kao u semaforu) ili ulaz (sluša, kao danas).
- pin P1 is pressed unutar bloka forever odmah primijeti dodir.
- Pauza nakon pogotka znači da jedan dodir oduzme samo jedan život.
- Logo micro:bita V2 osjeti dodir. Isti dodir može pokrenuti ili završiti igru, a o tome odlučuje uvjet.
- Varijabla može pamtiti i samo da ili ne: true ili false.
- running time kaže koliko je milisekundi prošlo od početka programa. Trajanje igre je kraj − početak.
- Ekran ima 25 točkica, pa vrijeme možemo prikazati točkicama: jedna točkica je jedna sekunda, a pun red pet sekundi.



