7. óra: Fénypont mozgatása

Egy fénypontot fogunk mozgatni a micro:bit-en...

A LED-ek sorainak és oszlopainak számozása:

Az ábrán pirossal jelzett LED pl. az \(x=3\), \(y=2\) értékekhez tartozik.

Elõkészületek

0. lépés: indítsa el a böngészõt, és lépjen be a programozó feületre (jobb egér, megnyitás új lapon):

https://makecode.microbit.org/#

Hozzon létre egy új projektet mozgatas néven!

A következõ kép fogad minket:

mozgatas.hex

 

I. Fénypont mozgatása

Feladat: Érjük el, hogy a kezdetben a bal felsõ sarokban megjelenõ fénypont mozogjon aszerint, hogy merre döntjük a micro:bit lapkát!
(És persze, ha már elérte a szélét, akkor ne menjen tovább...)
 

1. lépés: Hozzunk létre két változót! Az egyik x, a másik y legyen. Az 'indításkor' blokkban állítsuk az x és y kezdõértékét 0-ra! (Ez a kezdõpontunk.)

Az 'állandóan' blokkban gondoskodjunk az x, y koordinátájú pont megjelenítésérõl is!

2. lépés: Hozzunk létre a dõlés állapotának tárolására egy d nevû változót, és az b'indításkor' blokkban annak kezdõértékét is állítsuk 0-ra

Az eredmény:

A szimulátoron nem látszik semmi - kijelzés még nincs.


3. lépés: Tegyük ki a dõlés érzékelésére szolgáló 4 blokkot. (A 'Bemenet' menübõl az 'amikor rázás érzékelve' blokk a mienk.)

Megegyezésünk szerint legyen a d-ben tárolt érték a következõ:
- jobbra: 1,
- balra: 2,
- felfele ('logo lent'): 3,
- lefele ('logo fent'): 4.

4. lépés: A pont mozgatását az x és y változók manipulálásával végezzük.

Ehhez az állandóan blokkban el kell helyezzünk egy feltételvizsgálatot, amely a d változó értékétõl függõen elvégzi ezt.

Tegyen az 'állandóan' blokkba, a pont megjelenítése fõlé egy 'ha igaz akkor' blokkot! ('Feltételek' menü.)

Az eredmény:

 

5. lépés: Az új blokkot felokosítjuk, hogy figyelje a d változó 4 lehetséges értékét.

Az eredmény (kicsit átrendezve, hogy jobban elférjek):

 

 

6. lépés: Az egyes ágakban a teendõk:
- Ha d = 1, akkor jobbra lépünk, tehát x értékét 1-gyel növelni kell;
- Ha d = 2, akkor balra lépünk, tehát x értékét 1-gyel csökkenteni kell (-1-gyel 'növelünk');
- Ha d = 3, akkor felfele lépünk, tehát y értékét 1-gyel csökkenteni kell;
- Ha d = 4, akkor lefele lépünk, tehát y értékét 1-gyel növelni kell;

 

 

7. lépés: Gondoskodnunk kell egy kis szünetrõl (a LED felkapcsolása után), majd a LED lekapcsolásáról is.

Töltse le a programot a micro:bit-re, és próbálja ki!

 

8. lépés: Észleljük az utolsó problémát: a fényont kiszalad a LED-tábláról. Nem gondoskodtunk arról, hogy az x, illetve y változók Az 'értelmes határok között maradjanak.

Pontosabban szólva:
- Ha x-et növeljük, azt csak akkor tegyük, ha nem érte el a 4-et;
- Ha x-et csökkentjük, azt csak akkor tegyük, ha nem érte el a 0-t;
- És hasonlóképp tegyünk az y-nal is!

Át kell írnunk a hatszögekben lévõ feltételeket!

Ha pl. a d = 1-et vizsgáljuk, akkor még azt is néznünk kell, hogy ÉS x < 4 legyen. (Mert ha nem, ha már elérte a 4-et, akkor ne növeljük tovább...)

A végsõ program:

Töltse rá a micro:bit-re, próbálja ki! (És ha jól mûködik, mutassa meg!)

 

II. Türelemjáték

Feladat: Alakítsa át a programját türelemjátékká; vagyis oldja meg, hogy ha a fénypontot sikerül a középsõ pozícióba juttatni (x = 2, y = 2), akkor maradjon abba minden, és a micro:bit egy mosoly-ikont jelenít meg.
(Tesztelési tanács: Ha a fénypont túl gyors, v. ilyesmi, növelje a szünet hosszát, és akkor 'lomhább' lesz.)

Programozási tanács: Az állandóan blokk tartalmát tegye egy feltételbe, mely azt vizsgálja, hogy \(x \ne2\) vagy \(y\ne2\). Ha így van, akkor minden mehet, ahogy eddig...

Különben (ha tehát \(x\) és \(y\) is kettõ), akkor mindössze a 'mosoly' kell megjelenjen...

Kész, mûködõ programját mutassa meg!

Jó munkát!