Micro:bit lekce 3. Podmínky - Rozvětvení běhu programu podle splnění nějakých podmínek typu pravda / nepravda - splněno / nesplněno (výsledkem podmínky musí být vždy jen dvě možnosti) - Dva typy podmínek: 1. Jednoduchá If Then: Jestliže je splněno, něco speciálního udělej a potom pokračuj dalšími příkazy programu (když není splněno, pokračuj hned). 2. Složitější If Then Else: Jestliže je splněno, něco speciálního udělej a potom pokračuj dál, pokud není splněno, udělej něco jiného speciálního a potom pokračuj dál. Příklad: Je-li proměnná A = 10, potom změň její hodnotu na 0. Ve všech ostatních případech (to znamená není-li = 10) změň její hodnotu na 1000. Dál pokračuj výpisem její hodnoty - Konstrukci If Then a If Then Else najdete v kategorii Logic - Podmínky od If (např. porovnání < >= atd.) najdete taktéž v Logic
Příklady ke zpracování Příklad 1: Vyzkoušejte, k čemu slouží ikonky + a v kroužku na bloku příkazu If Then Else Příklad 2: Na začátku programu náhodně vylosuj číslo od 0 do 5 a ulož ho do proměnné. Pokud je vylosované číslo od 0 do 2 vypiš, pokud je od 3 do 5 vypiš. Počkej 2 sekundy a celé opakuj. Příklad 3: Podobně jako předchozí, jen přidej výpis velkého X, když bude vylosované číslo 2 nebo 3 tedy: 0 a 1 -, 2 a 3 X, 4 a 5 -. Příklad 4: Naprogramuj odpočítávání od 9 do 0 s tím, že se bude odpočet od 9 do 0 opakovat do nekonečna (=po dosažení nuly se nastaví odpočet opět na 9). Příklad 5: V On start mějme napevno zadané dvě hodnoty do proměnných cislojedna a cislodve (třeba 8 a 10, příště to může být obráceně 10 a 8 ). Nechť tvůj program odečte vždy větší číslo od menšího, výsledek uloží do proměnné výsledek a vypíše na displej. Příklad 6: Svítící dioda běžící stále dokola na 3. řádku displeje z leva doprava. Při vyjetí mimo displej se dioda opět objeví vlevo. Rozšíření příkladu 6: Zkus program udělat BEZ POUŽITÍ LITERÁLŮ = bez použití přímo zapsaných hodnot do těla programu (do Forever ) = pomocí proměnných, které nebudou měnit hodnotu, hodnota se jim nastaví jen při startu programu v On Start = ve Forever nebude napsané jediné číslo (všechna budou uložena do proměnných v On Start ) = znamená to také, že se potom hodnoty všeho (číslo řádku, o kolik diod se má světýlko posouvat, kde je levá a pravá hranice, ) dají změnit na jednom místě v On Start a ony se tím změní v celém programu, kde jsou použity. Identifikátory těchto speciálních neměnných proměnných piš pouze velkými písmeny, místo mezer používej podtržítko např: KROK_VLEVO, POCET_MRKVI (na rozdíl od proměnných: krokvlevo, pocetmrkvi). Zkus ještě: A. Nechť dioda jezdí na prvním řádku. B. Nechť se rozsvěcí jen tři prostřední diody od 2. do předposlední C. Nechť dioda skáče ob jednu. Jednoduché? Příklad 7: Rozšiřte předchozí program dioda se po dojetí doprava neobjeví vlevo, ale změní směr a pojede zpět doleva, tam na konci opět změní směr a jede doprava atd. Tedy: dioda bude jezdit stále dokola zleva doprava a zpět.
Příklad 8: Svítící dioda, pohybující se po displeji náhodně (nahoru, dolu, doleva, doprava) a spojitě (= v každém dalším kroku se může dioda posunout jen o jedno políčko vedle). Dioda nesmí opustit displej. Příklad 9: Svítící dioda, jejíž spojitý (v každém dalším kroku se může dioda posunout jen na vedlejší políčko) pohyb po displeji ovládá člověk náklonem micro:bitu doleva, doprava, dolu a nahoru (tilt left, tilt right, logo up, logo down). Dojede-li dioda na okraj displeje, objeví se v dalším kroku přesně na druhé straně. Příklad 10: Hra kostky Vytvoř na micro:bitu hru kostky bude hrát jeden hráč proti micro:bitu. Házet se bude třemi kostkami a o vítězství rozhoduje součet hodu (součet tří kostek) kdo má víc, vyhrává. Hra začíná po stisku levého tlačítka A hodem micro:bitu, ten ukáže postupně na displeji tři hozené hodnoty a potom jejich součet. Se svým zobrazeným součtem čeká na zatřesení což je hod lidského protihráče. Následně se na displeji objeví tři hozené hodnoty hráče a jejich součet. Se zobrazeným součtem hráče čeká opět na stisk levého tlačítka B. Dál micro:bit porovná svůj součet s hráčovým a ukáže palec nahoru, pokud toto kolo vyhrál hráč, palec dolů, když vyhrál micro:bit. Se zobrazeným palcem čeká na další hru, která začne po stisku tlačítka A hodem micro:bitu Rozšíření příkladu 10: Micro:bit může ještě počítat výhry svoje a výhry hráče. Ukázat je po každé hře na displeji. V té chvíli je možné provést nulování stiskem obou tlačítek současně.
Řešení příkladů Příklad 2: Příklad 3: Příklad 4: Příklad 5: Příklad 6 s rozšířením:
Příklad 7: Příklad 8: (dal by se s výhodou použít výčtový typ a logický součin v podmínkách to ale neumíme ) Příklad 9:
Příklad 10: