6. Zahrádka s opakováním <<< Obsah >>> 8. Petřík chodí po značkách
Prvek předmět před Petříkem můžeme použít nejen k položení předmětu před Petříka, ale také ke zjištění, jaký předmět před Petříkem leží. Testování předmětu využijeme v jiné metodě sázení zahrádky, založené na podmíněném cyklu.
Najděte v okně Základní prvky, koš ve skupince řízení programu prvek podmíněné opakování příkazů . Přetáhněte ho na začátek programu z minulé kapitoly (před všechny příkazy). Do těla cyklu opakuj příkazy přesuňte příkazy pro krok a položení květiny před Petříka. Za cyklem ponechejte prvky otočení vlevo a čekání na stisk klávesy. Ostatní prvky můžete vyhodit.
Prvek cyklu dokud platí slouží k testování podmínky, určující jak dlouho se mají příkazy v cyklu opakovat. My do podmínky cyklu uvedeme test, zjišťující zda je před Petříkem prázdné políčko. K sestavení podmínky použijeme prvek shodnost předmětů . Najdete ho v okně Základní prvky, koš ve skupince plocha . Prvek přetáhněte do prvku cyklu dokud platí . Do prvku shodnost předmětů vložíme dva prvky, které chceme porovnávat. Prvním z nich bude předmět před Petříkem , druhým prázdné políčko (z okna Společné proměnné a funkce). Zde je výsledek:
Zkuste program spustit. Petřík nasází květiny až k pravému okraji okna, otočí se nahoru a čeká na stisk klávesy. Možná vám činnost programu není zcela jasná, podívejme se proto na program podrobněji.
Jak funguje podmíněný cyklus? Popisy k prvkům cyklu nám říkají: "dokud platí (něco) opakuj příkazy (něco)". Při detailnějším pohledu to znamená následující. Cyklus na svém začátku vyhodnotí podmínku, zda je splněna. Pokud ano, provede příkazy uvedené v těle cyklu. Potom vše opakuje od začátku. Opět vyhodnotí podmínku a při jejím splnění znovu provede příkazy v cyklu. Není-li podmínka splněna, nic se neprovede, cyklus se ukončí a program pokračuje dalšími příkazy za cyklem.
Náš prográmek bychom mohli popsat takto: Na začátku se cyklus ptá testovací funkce vyhodnocující podmínku: "Je tvá podmínka splněna?" Testovací funkcí je zde funkce pro porovnání předmětů. Ta zjišťuje: "Je před Petříkem prázdné políčko?" Pokud ano, odpoví cyklu: "Ano, podmínka je splněna." Cyklus v tom případě provede příkazy v těle cyklu - Petřík před sebe položí květinu a popojde o krok vpřed. To se opakuje až k okraji plochy. U okraje plochy testovací funkce zjistí, že před Petříkem již není prázdné políčko a sdělí to cyklu. Cyklus dále nepokračuje a ukončí se. Následuje otočení Petříka vlevo a zastavení programu s čekáním na klávesu.
Po položení květin v jedné řadě zůstane Petřík otočen vlevo, směrem na další řadu. Otestujeme, zda je před ním prázdné políčko, a pokud ano, přikážeme mu vysázet další řadu květin. Když se dostane opět na výchozí pozici, nebude již před ním prázdné políčko, ale vysázená květina, a tak se zastaví.
Takže teď vezmeme nový cyklus podmíněné opakování příkazů . Dáme jej na začátek programu a do jeho těla přesuneme (levým tlačítkem myši) dříve vytvořený cyklus spolu s příkazem pro otočení vlevo. Na konci programu zůstane příkaz pro čekání na stisk klávesy. Do podmínky vnějšího cyklu zkopírujte (pravým tlačítkem myši) podmínku testující prázdné políčko před Petříkem (uchopením za prvek shodnost předmětů ). Zde je výsledek:
Program je hotov, zbývá jen ho vyzkoušet.
6. Zahrádka s opakováním <<< Obsah >>> 8. Petřík chodí po značkách