Petr chodí po značkách
V ďalšom programe sa naučíme používať podmienené vykonávanie príkazov. Petríka necháme prechádzať sa po ploche okna, na ktoré rozmiestnime rôzne značky. Podľa značiek sa bude Petřík rozhodovať, ktorým smerom sa vydá ďalej.
Zo všetkého najskôr založíme nový program. Ako si iste spomínate z kapitoly
1, nový program vytvoríte v okne programov pomocou tlačítka
Nový
. Pomenujte ho treba Značky.
V programe budeme potrebovať dva predmety, ktoré použijeme ako značky. V
poli Spoločné premenné a funkcie skopírujte pravým
tlačidlom myši prvok prázdne políčko
na dva nové predmety. Pomenujte je Doľava a
Doprava. Premenovanie vykonáte napríklad tak, že kliknutím
myšou na ikonu prvku prvok vyberiete a stlačením klávesov Alt +
Enter zahájite editáciu mená prvku.
Vyvolajte editáciu novovytvorených predmetov dvojitým kliknutím ľavým
tlačidlom myši na ikonky predmetov. Do prvku Doľava
nakreslite zatočenú šípku vľavo, do prvku Doprava
zatočenú šípku vpravo, napríklad takto:
a
. Kresliť môžete takto: Zvoľte nástroj kreslenie kružnice s hrúbkou
čiary 5 bodov a nakreslite kružnicu. Pomocou vyplneného obdĺžnika štvrť
kružnice vymažte prekreslením späť na zelenú. Nakoniec ceruzkou domaľujte
špičku. Druhú šípku môžete preniesť kópií z prvej šípky s využitím
výberu, po kópiu výber zrkadlovo prevráťte.
Pripravíme si plochu okna. Dvakrát kliknite na prvok označený
plocha
. V editačnom poli sa objaví plocha programu. Vytvoríme cestu pre Petríka.
Na plochu naskladajte predmety Doľava a
Doprava tak, aby Petřík, až sa bude podľa nich riadiť,
mohol chodiť po uzavretej dráhe. Nezabudnite, že Petřík vychádza z
ľavého dolného rohu smerom doprava. Predmety na ploche môžete
rozmiestňovať tak, že najskôr pretiahnete oba prvky z okna
Spoločné premenné a funkcie niekam na plochu, kde je
položíte. Potom ľavým tlačidlom myši predmety na ploche premiestňujete,
pravým tlačidlom je kopírujete. Nepotrebný predmet zrušíte odhodením mimo
plochu alebo prekrytím iným prvkom. Plocha môže vyzerať napríklad takto
(cesta Petríka je vyznačená čiarkovanou čiarou so šípkami):
Po príprave plochy programu sa pustíme do konštrukcie programu. Tentokrát
začneme z opačného konca - od hlavného cyklu. Petřík má za úlohu
neustále chodiť dookola po značkách, takže je zrejmé, že základom
programu bude nekonečná slučka. Pripravíme si preto do programu prvok
podmienené opakovanie príkazov
.
V skutočnosti neurobíme slučku nekonečnú, ale umožníme prerušiť
program stlačením klávesy Esc. Použijeme funkciu vstupu
kódu klávesy z klávesnice. Vieme, že vracia číselný kód (poradové
číslo klávesy na klávesnici), preto potrebujeme funkciu k porovnaniu
čísel. Porovnávacej funkcie pre čísla nájdeme v skupinke
výpočty
, Podskupince porovnanie
. Použijeme funkciu nerovná
. Presuňte ju do podmienky cyklu kým platí
.
Prvým prvkom, ktorý budeme porovnávať, je vstup klávesy
(nečaká na stlačenie)
. Pretiahnite ho do porovnávacej funkcie zo skupiny ovládanie
, Podskupiny klávesnica
. S podobným prvkom, s čakaním na stlačenie klávesy, sme sa už zoznámili
v predošlých kapitolách. Rozdiel medzi prvkami spočíva v tom, že tento
prvok na stlačenie klávesy nečaká. Ak nie je žiadny kód klávesy
pripravený, vracia kód nestisknuté klávesu (je to číslo
0, ale my sa konkrétne hodnotou nemusíme zaťažovať,
pretože máme k dispozícii symbolický kód žiadna klávesa
nestlačené
).
Druhým porovnávaným prvkom je klávesa Esc
. Nájdeme ju v rovnakej skupinke ako funkciu vstupu klávesy, ale ešte sa
musíme vnoriť trochu hlbšie, a to do podskupinek klávesy
a riadiace klávesy
. Je to číselná konštanta s hodnotou číselného kódu klávesy Esc, aby
sme nemuseli kód klávesy poznať. Položte prvok do porovnávacej funkcie pod
prvok funkcie vstupu klávesy.
Čo náš cyklus teraz robí? Prečítajte si poznámky u prvkov: "Kým platí, že nie je rovný vstup klávesy klávese Esc, opakuj príkazy (niečo)." Trochu krkolomne povedané, ale snáď je význam jasný. Cyklus sa bude opakovať, kým nepríde z klávesnice klávesa Esc.
Teraz naplníme telo cyklu opakuj príkazy
. Petřík sa bude pri svojej pochôdzke rozhodovať o ďalšom kroku podľa
políčka, ktoré ležia pred ním. Pre rozhodovanie použijeme nový prvok,
podmienené vykonanie príkazov
. Nájdete ho v skupinke riadenie programu * [
images/img/petr_tutorial_rizeni.gif ]
. Prvok pretiahnite do tela cyklu opakuj príkazy [
images/img/petr_tutorial_opakuj.gif *]
.
Po položení prvku podmieneného vykonanie príkazov si môžete všimnúť,
že prvok v sebe obsahuje ďalšie tri prvky. Prvým prvkom je ak
platí, že
. Je to test podmienky. S podobným prvkom sme sa už stretli pre podmienený
cyklu. Prvok vykonáva test nejaké podmienky a ak je splnená, vykonajú sa
príkazy v prvku potom vykonaj **
. Ak nie je podmienka splnená, vykonajú sa príkazy v prvku **inak
vykonaj
.
V teste podmienky budeme testovať, či pred Petrík leží predmet pre
otočenie doľava. Podobný test poznáme z predošlej kapitoly, a tak je vám
zrejme už jasné, že použijeme prvky zhoda predmetov
, Predmet pred Petrik
a Doľava
. Vložte prvky do testu podmienky.
Do prvej vetvy (potom vykonaj
) Doplňte dva príkazy, krok
a vľavo
. Naša konštrukcia podmieneného príkazu má teraz tento význam: "Ak
leží pred Petrík predmet pre otočenie doľava, urobí krok a otočí sa
vľavo, inak bude robiť niečo iné."
Teraz vytvoríme to "niečo iné". Skopírujte pravým tlačidlom
myši celú konštrukciu podmieneného príkazu ešte raz o trochu nižšie.
Novovytvorený podmienený príkaz znova uchopte, tentoraz ľavým tlačidlom
myši, a presuňte ho do druhej vetvy prvého podmieneného príkazu (vetva
inak vykonaj
). Tak sme si zrýchlene "predpripravili" časť programu pre druhý prípad,
otočenie doprava.
V novom podmienečnom príkaze nahraďte prvok Doľava
prvkom Doprava
. Podobne nahraďte prvok vľavo
prvkom vpravo
. Teraz už asi tušíte, čo bude Petřík robiť, ak nebude pred ním predmet
pre otočenie doľava. Skúsi, či je pred ním predmet prikazujúca otočenie
doprava. Ak áno, urobí krok vpred a otočí sa vpravo. Inak ... Čo má
vlastne robiť inak? Nič iné už od neho nechceme, takže stačí, keď urobí
krok
. Prvok kroku skopírujte pravým tlačidlom myši z vedľajšej vetvy
podmienky.
Vyzeralo to zložito? Nebojte, už sme hotoví. Výsledný program vidíte na obrázku tu.
Program spustite. Ak je všetko v poriadku, Petřík pobehuje medzi značkami
a otáča sa na nich vľavo a vpravo. Chcete Petríka trochu zrýchliť?
Dvojklikom myšou na prvku Petřík
vyvolajte editáciu sprajt Petríka (sprajt je animovaná postavička Petra).
Stlačte tlačidlo Vlastnosti
. Objaví sa okno pre nastavenie vlastností sprajt. Do poľa Fáz na
krok napíšte číslo 4 a stlačte
Enter. Program opäť spustite. Petřík teraz behá ako
blázon, ani sa nezadýchá.
Skúste Peťkovi pripraviť zložitejšie dráhu. Tu je jeden príklad:
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 237x (129.34 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Petr (sú obsiahnuté v EXE súbore, ktorý možno v programe priamo otvoriť)