Petr chodí po značkách
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:
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 237x (129.34 kB)
Aplikace je včetně zdrojových kódů v jazyce Petr (jsou obsaženy v EXE souboru, který lze v programu přímo otevřít)