Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

BBC micro:bit Koostanud: Kristi Jaason (2019),

kristiproge.blogspot.com

Mäng: Rumal lind (Flappy Bird)

Mängus Rumal lind peab mängija juhtima vasakul asuvat lindu nõnda, et see ei põrkaks kokku paremalt lähenevate
vertikaalsete takistusega. Takistusega kokkupõrkel mäng kaotatakse.
Mängu programmeerimisel kasutatakse Advanced bloki Game ja Array klotse.

Muutuja lind
Koosta kood, mis kuvab spraidi lind mänguväljale ja paneb selle vilkuma. Spraidi lind loomiseks tee vasak hiireklõps
noolel ja vali menüüst New variable... .

Linnu juhtimine
Koosta kood, mille abil lindu juhtida ehk ta lendama panna: vajutades nupule A liigub lind ülespoole ja vajutades
nupule B liigub lind allapoole.

Testi programmi tööd väljundiaknas.

Takistuste lisamine
Nüüd läheb põnevaks! Koostad programmijupi, mis loob suvalisi takistusi. Igas takistuses on üks avaus (auk), millest
lind saab läbi lennata. Iga takistus on sprait. Kõiki takistuse spraite hoitakse järjendis (array). Järjend koosneb
elementidest. Meie mängus on elementideks takistuse spraidid. Näide: array = (0 1 2 3) – selles järjendis on
elementideks numbrid 0, 1, 2 ja 3.

1
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Alustuseks loo tühi järjend (empty array), kuhu lisatakse kõik takistuse spraidid. Selleks loo uus muutuja takistused.
Täienda on start koodiplokki järgnevalt:

Nüüd loo vertikaalsed takistused, milles on 4 spariti ja 1 avaus (auk). Selleks loo uus muutuja tühiTakistusY. Juhuarvu
abil valitakse üks number nullist neljani. Juhuarv on see koht, kuhu takistusse tuleb avaus. Täienda on start
koodiplokki:

Igal järjendis oleval spraidil (ehk takistusel) on järjekorranumber, mida nimetatakse indeksiks (index). Indeksite
loendamist alustatakse nullist (0). Täienda on start koodiplokki. Muutuja index leiad rippmenüüst.

2
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Järgmisena kasutame for-tsüklit. For-tsükkel kestab seni kuni kõik elemendid järjendis on ükshaaval läbi käidud.
Koosta allolev kood (selgitus peale koodi):

Alguses valitakse üks juhuslik arv nullist neljani.


For-tsüklis toimub juhusliku arvu kontroll. Kui elemendi järjekorranumber (index) ei võrdu juhusliku arvuga,
kuvatakse ekraanile sprait.
Testi koodi väljundiaknas. Iga uuesti käivitamise korral ilmub mänguväljale erinev vertikaalne takistus.
Enne jätkamist kontrolli, kas lind liigub üles-alla ja takistus on muutub iga uuesti käivitamisega.

Takistuste liikuma panemine


Takistuse liikuma panemiseks kasutatakse lõputult korduvat for-tsüklit. Sellega saab muuta iga takistuse spraidi
asukohta.
Leia klots for element ja nimeta selles olev value ümber (rename) takistuseks ning tee ülejäänud muudatused:

Nüüd liigub takistus vasakule iga ühe sekundi järel.

3
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Takistuse kustutamine
Selleks et kustutada takistus, kui see on jõudnud vasakusse serva, kasutatakse while-tsüklit. While-tsükkel käib läbi
kõik takistuse spraidid ja kontrollib nende asukohta. Kui spraidid jõuavad vasakusse serva, siis need kustutatakse.

Rohkem takistusi
Selleks et takistusi tuleks järjest juurde, paiguta osa start-on plokis olevast koodist lõputu tsükli plokki:

4
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Nüüd on kogu mänguväli liikuvaid takistusi täis. Lisa nende vahele ruumi. Selleks kasuta muutujat ticks, mis loeb
kokku mitu korda on lõputu tsükkel kordunud. Uus takistus luuakse ainult siis, kui muutuja ticks jaguneb kolmega
(jagamise jääk on 0).

Mängu lõpp
Hetkel ei juhtu midagi, kui lind puudutab takistust. Seda saab parandada kasutades for-tsüklit, mis käib läbi kõik
järjendis olevad spraidid ja kontrollib, kas mõne spraidi koordinaadid on samad, mis linnul.

5
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Valmis programm
Kogu programm näeb välja selline:

Testi mängu väljundiaknas.


Lae mäng oma micro:biti.
Vahvat mängimist!

6
BBC micro:bit Koostanud: Kristi Jaason (2019),
kristiproge.blogspot.com

Arenda mängu edasi


Kui oled Rumala linnu mängu mõnda aega mänginud, mõtle, kuidas seda edasi arendada. Siin on mõned ideed:

 Lisa punktide lugemine.


 Mängu edenedes liiguvad takistused järjest kiiremini.
 Linnul on mängus kolm elu.

You might also like