Záhradka s podmienkou
Prvok predmet pred Petrik
môžeme použiť nielen na položenie predmetu pred Petríka, ale aj na
zistenie, aký predmet sa pred Petrik nachádza. Testovanie predmetu využijeme
v inej metóde stávkovanie záhradky, založené na podmienenom cyklu.
Nájdite v poli Základné prvky, kôš, v skupinke
riadenie programu
, Prvok podmienené opakovanie príkazov
. Presuňte ho na začiatok programu z minulej kapitoly (pred všetky príkazy).
Do tela cyklu opakuj príkazy
presuňte príkazy pre položenie kvety pred Petríka a krok. Za cyklom
ponechajte prvky otočenie vľavo a čakanie na stlačenie klávesy. Ostatné
prvky môžete vyhodiť.
Prvok cyklu kým platí
slúžia na testovanie podmienky určujúce, ako dlho sa majú príkazy v cykle
opakovať. My do podmienky cyklu uvedieme test zisťujúci, či je pred Petrík
prázdne políčko. Na zostavenie podmienky použijeme prvok zhodnosť
predmetov
. Nájdete ho v okne Základné prvky, kôš v skupinke
plocha
. Prvok pretiahnite do prvku cyklu kým platí
. Do prvku zhodnosť predmetov vložíme dva prvky, ktoré
chceme porovnávať. Prvým z nich bude predmet pred Petrik
, Druhým prázdne políčko
(z okna Spoločné premenné a funkcie). Tu je výsledok:
Skúste program spustiť. Petřík nasade kvetiny až k pravému okraju okna, otočí sa hore a čaká na stlačenie klávesy. Možno vám činnosť programu nie je úplne jasná, pozrime sa preto na program podrobnejšie.
Ako funguje podmienený cyklus? Popisy k prvkom cyklu nám hovoria: "kým platí (niečo) opakuj príkazy (niečo)". Pri detailnejšom pohľade to znamená nasledovné. Cyklus na svojom začiatku vyhodnotí podmienku, či je splnená. Ak áno, vykoná príkazy uvedené v tele cykle. Potom všetko opakuje od začiatku. Opäť vyhodnotí podmienku a pri jej splnení znovu vykoná príkazy v cykle. Ak nie je podmienka splnená, nič sa nevykoná. Cyklus sa ukončí a program pokračuje ďalšími príkazy za cyklom.
Náš programík by sme mohli opísať takto: Na začiatku sa cyklus pýta testovacie funkcie vyhodnocujúci podmienku: "Je tvoja podmienka splnená?" Testovacia funkciou je tu funkcia pre porovnanie predmetov. Tá zisťuje: "Je pred Petrík prázdne políčko?" Ak áno, odpovie cyklu: "Áno, podmienka je splnená." Cyklus v tom prípade vykoná príkazy v tele cyklu - Petřík pred seba položí kvetinu a podíde o krok vpred. To sa opakuje až k okraju plochy. U okraja plochy testovacie funkcie zistí, že pred Petrík už nie je prázdne políčko a oznámi to cyklu. Cyklus ďalej nepokračuje a ukončí sa. Nasleduje otočenie Petríka vľavo a zastavenie programu s čakaním na kláves.
Po položení kvetov v jednom rade zostane Petřík otočený vľavo, smerom na ďalší rad. Otestujeme, či je pred ním prázdne políčko, a ak áno, rozkážeme mu vysádzať ďalší rad kvetín. Keď sa dostane opäť na východiskovú pozíciu, nebude už pred ním prázdne políčko, ale uskutočnená kvetina, a tak sa zastaví.
Takže teraz vezmeme nový cyklus podmienené opakovanie
príkazov * [ images/img/petr_tutorial_cyklus2.gif
]
. Dajte ho na začiatok programu a do jeho tela presuňte (ľavým tlačidlom
myši) skôr vytvorený cyklus spolu s príkazom pre otočenie vľavo. Na konci
programu zostane príkaz pre čakanie na stlačenie klávesy. Do podmienky
vonkajšieho cyklu skopírujte (pravým tlačidlom myši) podmienku testujúci
prázdne políčko pred Petrík (uchopením za prvok zhodnosť
predmetov [ images/img/petr_tutorial_shodnost.gif *]
). Tu je výsledok:
Program je hotový, zostáva len ho vyskúšať.
Celkom jednoduchý programík, nie? A čo takto si skúsiť na záver ešte
jednu drobnôstky? Skúste sa zamyslieť nad tým, ako čo najjednoduchším
programko zabezpečiť, aby Petřík zaplnil celú plochu tehlami. Môžete
využiť prvok predmet na pozíciu s Petrik
. A keď nebudete vedieť, stiahnite si ukážkový príklad
Zedník.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 224x (253.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ť)