4. Zahrádka s podmínkou <<< Obsah >>> 6. Petr v bludišti
V dalším programu se naučíme používat podmíněné provádění příkazů. Petříka necháme procházet se po ploše okna, na které rozmístíme různé značky. Podle značek se bude Petřík rozhodovat, kterým směrem se vydá dále.
Ze všeho nejdříve založíme nový
program. Jak si jistě vzpomínáte z kapitoly 1, nový program vytvoříte v okně programů
pomocí tlačítka Nový .
Pojmenujte ho třeba Značky.
V programu budeme potřebovat dva
předměty, které použijeme jako značky. V poli Společné proměnné a
funkce zkopírujte pravým
tlačítkem myši prvek prázdné
políčko na dva nové
předměty. Pojmenujte je Doleva a Doprava. Přejmenování provedete například tak, že
kliknutím myší na ikonu prvku prvek vyberete a stiskem kláves
Alt+Enter zahájíte editaci jména prvku.
Vyvolejte editaci nově vytvořených
předmětů dvojitým kliknutím levým tlačítkem myši na
ikonky předmětů. Do prvku Doleva
nakreslete zatočenou šipku vlevo, do prvku Doprava zatočenou šipku vpravo, například takto: a
. Kreslit můžete
takto: Zvolte nástroj kreslení kružnice s tloušťkou čáry 5
bodů a nakreslete kružnici. Pomocí vyplněného obdélníku
čtvrt kružnice vymažte překreslením zpět na zelenou.
Nakonec tužkou domalujte špičku. Druhou šipku můžete
přenést kopií z první šipky s využitím výběru, po kopii
výběr zrcadlově převraťte.
Připravíme si plochu okna. Dvakrát
klikněte na prvek označený plocha . V editačním poli
se objeví plocha programu. Vytvoříme cestu pro Petříka. Na
plochu naskládejte předměty Doleva a Doprava tak, aby Petřík, až se bude podle nich řídit,
mohl chodit po uzavřené dráze. Nezapomeňte, že Petřík
vychází z levého dolního rohu směrem doprava. Předměty na
ploše můžete rozmisťovat tak, že nejdříve přetáhnete oba
prvky z okna Společné
proměnné a funkce někam na
plochu, kde je položíte. Potom levým tlačítkem myši
předměty na ploše přemisťujete, pravým tlačítkem je
kopírujete. Nepotřebný předmět zrušíte odhozením mimo
plochu nebo překrytím jiným prvkem. Plocha může vypadat
například takto (cesta Petříka je vyznačena čárkovanou
čarou se šipkami):
Po přípravě plochy programu se pustíme
do konstrukce programu. Tentokrát začneme z opačného konce -
od hlavního cyklu. Petřík má za úkol neustále chodit dokola
po značkách, takže je zřejmé, že základem programu bude
nekonečná smyčka. Připravíme si proto do programu prvek podmíněné opakování
příkazů .
Ve skutečnosti neuděláme smyčku
nekonečnou, ale umožníme přerušit program stiskem klávesy Esc. Použijeme funkci vstupu kódu klávesy z
klávesnice. Víme, že vrací číselný kód (pořadové
číslo klávesy na klávesnici), proto potřebujeme funkci
k porovnání čísel. Porovnávací funkce pro čísla
nalezneme ve skupince výpočty ,
podskupince porovnání
.
Použijeme funkci není
rovno
. Přetáhněte ji
do podmínky cyklu dokud
platí
.
Prvním prvkem, který budeme porovnávat,
je vstup
klávesy (nečeká na stisk) . Přetáhněte ho do
porovnávací funkce ze skupiny ovládání
,
podskupiny klávesnice
. S podobným prvkem, s čekáním na stisk klávesy,
jsme se již seznámili v předešlých kapitolách. Rozdíl
mezi prvky spočívá v tom, že tento prvek na stisk klávesy
nečeká. Není-li žádný kód klávesy připraven, vrací kód
nestisknuté klávesy (je to číslo 0, ale my
se konkrétní hodnotou nemusíme zatěžovat, protože máme
k dispozici symbolický kód žádná klávesa nestisknuta
).
Druhým porovnávaným prvkem je klávesa Esc .
Najdeme ji ve stejné skupince jako funkci vstupu klávesy, ale
ještě se musíme vnořit trochu hlouběji, a to do podskupinek klávesy
a řídicí
klávesy
. Je to číselná
konstanta s hodnotou číselného kódu klávesy Esc, abychom
nemuseli kód klávesy znát. Položte prvek do porovnávací
funkce pod prvek funkce vstupu klávesy.
Co náš cyklus teď dělá? Přečtěte si poznámky u prvků: "Dokud platí, že není roven vstup klávesy klávese Esc, opakuj příkazy (něco)." Trochu krkolomně řečeno, ale snad je význam jasný. Cyklus se bude opakovat, dokud nepřijde z klávesnice klávesa Esc.
Nyní naplníme tělo cyklu opakuj příkazy .
Petřík se bude při své pochůzce rozhodovat o dalším kroku
podle políčka, které leží před ním. Pro rozhodování
použijeme nový prvek, podmíněné
provedení příkazů
. Najdete ho ve
skupince řízení
programu
. Prvek přetáhněte
do těla cyklu opakuj
příkazy
.
Po položení prvku podmíněného
provedení příkazů si můžete všimnout, že prvek v sobě
obsahuje další tři prvky. Prvním prvkem je platí-li, že .
Je to test podmínky. S podobným prvkem jsme se již setkali u
podmíněného cyklu. Prvek provádí test nějaké podmínky a
je-li splněna, vykonají se příkazy v prvku potom proveď
. Není-li podmínka splněna, provedou se
příkazy v prvku jinak
proveď
.
V testu podmínky budeme testovat, zda
před Petříkem leží předmět pro otočení doleva. Podobný
test známe z předešlé kapitoly, a tak je vám zřejmě již
jasné, že použijeme prvky shodnost předmětů ,
předmět před
Petříkem
a Doleva
.
Vložte prvky do testu podmínky.
Do první větve (potom proveď )
doplňte dva příkazy, krok
a vlevo
.
Naše konstrukce podmíněného příkazu má teď tento význam:
"Leží-li před Petříkem předmět pro otočení
doleva, udělá krok a otočí se vlevo, jinak bude dělat něco
jiného."
Nyní vytvoříme to "něco
jiného". Zkopírujte pravým tlačítkem myši celou
konstrukci podmíněného příkazu ještě jednou o trochu
níže. Nově vytvořený podmíněný příkaz znovu uchopte,
tentokrát levým tlačítkem myši, a přetáhněte ho do druhé
větve prvního podmíněného příkazu (větev jinak proveď ).
Tak jsme si zrychleně "předpřipravili" část
programu pro druhý případ, otočení doprava.
V novém podmíněném příkazu nahraďte
prvek Doleva
prvkem Doprava
.
Podobně nahraďte prvek vlevo
prvkem vpravo
.
Teď už asi tušíte, co bude Petřík dělat, nebude-li před
ním předmět pro otočení doleva. Zkusí, zda je před ním
předmět přikazující otočení doprava. Pokud ano, udělá
krok vpřed a otočí se vpravo. Jinak... Co má vlastně dělat
jinak? Nic jiného už od něj nechceme, takže stačí, když
udělá krok
.
Prvek kroku zkopírujte pravým tlačítkem myši z vedlejší
větve podmínky.
Vypadalo to složitě? Nebojte, už jsme hotovi. Výsledný program vidíte na obrázku zde.
Program spusťte. Je-li vše v pořádku,
Petřík pobíhá mezi značkami a otáčí se na nich vlevo a
vpravo. Chcete Petříka trochu zrychlit? Dvojklikem myší na
prvku Petřík
vyvolejte editaci sprajtu Petříka (sprajt je animovaná
postavička Petra). Stiskněte tlačítko Vlastnosti
.
Objeví se okno pro nastavení vlastností sprajtu. Do pole Fází na krok napište číslo 4 a
stiskněte klávesu Enter. Program opět spusťte. Petřík teď běhá jako
blázen, ani se nezadýchá.
Zkuste Petříkovi připravit složitější dráhu. Tady je jeden příklad: