Podmínky

Tato sekce obsahuje následující témata:

Podmínky a jejich použití

Seznam podmínek

Baltík a jeho stav

Předměty

Klávesy

Znaky

Oblasti a animované předměty

Čísla a řetězce

Souřadnice

Stopky

Multimédia

Použití logických operátorů

1) Podmínky a jejich použití

Podmínky se používají především při rozhodování o dalším postupu programu v cyklu s počáteční podmínkou (while, do-while) a v příkazu pro rozhodování (if). Tyto příkazy mají následující syntaxi:

while <Podmínka> <Příkaz>

<Příkaz> do-while <Podmínka>

if <Podmínka> <Příkaz>

if <Podmínka> <Příkaz> else <Příkaz>

Jako <Podmínka> zde může vystupovat

Ü některá z podmínek uvedených dále nebo

Ü číselná hodnota - v tom případě je nulová hodnota ekvivalentní logické hodnotě NE (Nesplněno) a nenulová hodnota logické hodnotě ANO (Splněno).

Ekvivalence podmínek a číselných výrazů platí i obráceně: libovolnou podmínku můžeme (po případném uzávorkování - aby bylo jasné, že jde o číselný výraz) použít jako číslo. Přitom

Ü splněná podmínka vrací hodnotu 1,

Ü nesplněná podmínka vrací hodnotu 0.

Hodnoty podmínek pak můžeme pro další použití uchovávat i v proměnných.

Proměnné A přiřaď hodnotu podmínky Viditelný.
Je-li Baltík právě viditelný, uloží se do proměnné A číslo 1, není-li viditelný, uloží se do A číslo 0.

2) Seznam použitelných podmínek

Baltík a jeho stav

Neviditelný
Podmínka je splněna, je-li Baltík neviditelný.

Viditelný
Podmínka je splněna, je-li Baltík viditelný.

Bez obláčku
Podmínka je splněna, je-li zapnuto čarování bez obláčku.

S obláčkem
Podmínka je splněna, je-li zapnuto čarování s obláčkem.

Rychlost
Podmínka se používá s číslem. Podmínka je splněna, pokud má Baltík rychlost rovnu tomuto číslu.

Rychlost 4
Podmínka je splněna, pokud má Baltík rychlost 4.

Východ
Podmínka je splněna, je-li Baltík otočen na východ.

Jih
Podmínka je splněna, je-li Baltík otočen na jih.

Západ
Podmínka je splněna, je-li Baltík otočen na západ.

Sever
Podmínka je splněna, je-li Baltík otočen na sever.

Předměty

Nějaký předmět
Podmínka je splněna, je-li před Baltíkem, případně na zadaných souřadnicích nějaký předmět.

Předmět
Použijete-li jako podmínku některý předmět z banky předmětů, podmínka bude splněna, pokud bude před Baltíkem právě tento předmět.

Zadáte-li za předmětem souřadnice, je podmínka splněna tehdy, když na daných souřadnicích je tento předmět.

Klávesy

Klávesa
Tento druh podmínek se do programu vkládá pomocí tlačítka Klávesy, konstanty, proměnné,

Klávesy, konstanty, proměnné,

kde si z banky Klávesy vyberete některou z kláves. Podmínka je splněna tehdy, když je tato klávesa stejná s klávesou, kterou Baltík přečetl příkazem Čti klávesu nebo tlačítko myši (viz Jednoduché příkazy a Čti klávesu).

Pozn.:Pokud jako podmínku použijete klávesu Shift, Ctrl nebo Alt, je tato podmínka splněna, je-li daná klávesa právě držena (v poloze "stisknuto").
Použijete-li jako podmínku jednu z kláves CapsLock, ScrollLock nebo NumLock, je podmínka splněna, je-li daný přepínač zapnut, tzn. je-li indikátor daného přepínače na klávesnici rozsvícen.

Nějaká klávesa
Prázdná klávesa znamená, že podmínka je splněna, byla-li stisknuta libovolná klávesa nebo některé tlačítko myši.

Za prvkem Nějaká klávesa může následovat číslo v závorkách. Pak je podmínka splněna právě tehdy, byla-li stisknuta klávesa s tímto číslem. Číslo klávesy můžete zjistit v bance kláves nebo v programu použitím Převodu na číslo.

Ukázku banky kláves zvětšíte tak, že na ni klepnete myší.

Byla stisknuta klávesa č. 6 (klávesa F).

Klávesa je držena
Kromě čtení stisknuté klávesy můžete také zjišťovat, jestli je klávesa nebo tlačítko myši drženo (tzn. že bylo stisknuto a ještě nebylo puštěno). Za tuto podmínku vložte klávesu, jejíž stav vás zajímá. Podmínka je splněna, je-li zadané tlačítko drženo. Jako klávesu můžete použít také některé z tlačítek myši.

Je držena klávesa A.
Podmínka je splněna, držíte-li v daném okamžiku klávesu A stisknutou. Jako klávesu v této podmínce můžete použít i prvek Nějaká klávesa nebo tlačítka myši.

Pozn.:Pokud používáte tuto podmínku, je vhodné vždy vyprázdnit frontu kláves, aby se v této frontě stisknuté klávesy nehromadily.

Znaky

Přečtený znak
Tato podmínka je splněna, pokud byl přečten nějaký znak (klávesa s nějakým znakem).

Pozn.:Stiskem šipek, CapsLock, Esc a dalších řídících kláves se nepřečte žádný znak.

Znak č. 65
Tato podmínka je splněna, pokud byl přečten znak s kódem 65, tj. velké A.

Oblasti a animované předměty

Leží v oblasti nebo animovaném předmětu (kontrola překrývání)

Podmínka kontrola překrývání je splněna, pokud se Baltík, animovaný předmět, bod nebo políčko dotýkají nebo překrývají s oblastí nebo jiným animovaným předmětem, případně v oblasti či na animovaném předmětu bylo stisknuto tlačítko myši nebo je tam právě ukazatel myši.

Pozn.:Prvek Oblast (...leží v oblasti...) najdete v tabulce oblastí.

Následující ukázky demonstrují nejčastější druhy podmínek:

Baltík je v oblasti 2.

Levé tlačítko myši bylo stisknuto v oblasti 2.

Ukazatel myši je v oblasti 2.

Animovaný předmět č. 5 leží v oblasti 2.

Bod [56,110] leží v oblasti 2.

Políčko [X Baltíka, Y myši] leží v oblasti 2.

Místo oblastí můžete používat také animovaný předmět, např.:

Bod [292,145] leží v animovaném předmětu č. 6.

nebo:

Animovaný předmět č. 1 je v kolizi s animovaným předmětem č. 6,
neboli neprůhledné body animovaného předmětu č. 1 se překrývají s neprůhlednými body animovaného předmětu č. 6.

Pozn.:Pokud číslo chybí, bere se oblast nebo animovaný předmět číslo 1.

Čísla a řetězce

Operátory porovnání

Pomocí čísel, řetězců, případně souřadnic, a operátorů < "je menší než", = "je rovno" a > "je větší než" můžete vytvořit podmínku, která bude splněna, bude-li porovnání pravdivé. Například podmínka "2 < 5" bude vždy splněna, podmínka "X Baltíka = 14" bude splněna, když bude Baltík stát u pravého okraje scény. Můžete také vytvořit složené operátory, např. "<=" (je menší nebo rovno), "<>" (je menší nebo větší, tzn. není rovno) a podobně.

A je rovno 5.
Podmínka je splněna, je-li v proměnné A hodnota 5.

A je menší než 5.
Podmínka je splněna, je-li v proměnné A číslo menší, než 5, např. 4, 0, -20 apod.

Jmeno je rovno Petr.
Tato podmínka je splněna, je-li v proměnné Jmeno uložen řetězec "Petr".

Pozn.:Při používání řetězců jsou relační operátory používány vzhledem k tabulce ASCII, takže např.
"Adam" < "Běta", ovšem "adam" > "Běta", protože malé a je v tabulce až za velkým B, podobně
"Čeněk" > "David", protože Č je až za D a
"Hana" > "Chrudoš", protože Ch je bráno jako dva znaky C a h, a C je v tabulce před H.

Souřadnice

xy je rovno [15,13].
Podmínka je splněna, jsou-li v proměnných xy uloženy souřadnice bodu [15,13], tedy je-li x=15 a y=13.

Pozn.:Při porovnávání souřadnic nemůžete používat relační operátory < a >.

Pozn.:Jsou-li alespoň jedny z porovnávaných souřadnic souřadnicemi políčka, pak se porovnávají souřadnice políčka.

xy je rovno [1,1].
Podmínka je splněna, jsou-li v proměnných xy souřadnice libovolného bodu políčka [1,1], tedy je-li x mezi 39 a 77 a y mezi 29 a 57, např. [50,50].

Číslo

Jak jsme již řekli v úvodu sekce, podmínka, kterou tvoří samotné číslo, je splněna, je-li toto číslo různé od nuly. Např. podmínka
"a % 2" je splněna, pokud číslo z proměnné a dává po dělení dvěma zbytek různý od nuly (tzn. je-li v proměnné a libovolné liché číslo).

Stopky

Stopky běží

Podmínka je splněna, pokud stopky právě běží.

Multimédia

Chcete-li zjistit, zda se právě přehrává zvuk WAVE, hudba MIDI nebo video AVI, použijte příslušný prvek jako podmínku.

Hraje zvuk WAVE

Hraje hudba MIDI

Hraje video AVI

Podmínka je splněna, hraje-li právě dané multimédium.

3) Použití logických operátorů

Podmínky můžete spojovat a za pomoci závorek a logických operátorů vytvářet podmínky složitější:

Operátor NOT (neplatí)
Operátor NOT obrací pravdivost podmínky, na níž je použit. Použijete-li jej před podmínkou, bude výsledná podmínka splněna tehdy, když původní podmínka splněna nebude a naopak. Například podmínka "NOT Nějaký předmět" je splněna tehdy, když před Baltíkem není žádný předmět.

Operátor AND (a zároveň)
Operátor AND použijete mezi dvěma podmínkami tehdy, chcete-li, aby výsledná podmínka byla splněna právě když jsou splněny obě podmínky současně. Například podmínka

"[D] AND Nějaký předmět"

je splněna, pokud byla stisknuta (a přečtena příkazem Čti klávesu) klávesa [D] a současně je před Baltíkem nějaký předmět.

Operátor OR (nebo)
Operátor OR použijete mezi dvěma podmínkami tehdy, chcete-li, aby výsledná podmínka platila právě když je splněna alespoň jedna z těchto podmínek. Například podmínka

"[End] OR [F10]"

je splněna, pokud byla stisknuta (a přečtena příkazem Čti klávesu) klávesa [End] nebo klávesa [F10].

Operátor XOR (výlučné nebo, nonekvivalence)
Operátor XOR použijete mezi dvěma podmínkami tehdy, chcete-li, aby výsledná podmínka platila právě když je splněna právě jedna z těchto podmínek, tzn. první nebo druhá, ale ne obě současně. Například podmínka

"[D] XOR Nějaký předmět"

je splněna, pokud byla stisknuta (a přečtena příkazem Čti klávesu) klávesa [D] a před Baltíkem není žádný předmět, nebo pokud nebyla stisknuta klávesa [D] a před Baltíkem je nějaký předmět.

Závorky
se používají tehdy, když chceme určit, která část složené podmínky se má vyhodnocovat přednostně. Bez použití závorek se nejdříve vyhodnotí operátor NOT, pak operátor AND a nakonec operátor OR. Například podmínka

"Nějaký předmět AND ([A] OR [B])"

je splněna, je-li před Baltíkem nějaký předmět (např. auto) a současně byla stisknuta alespoň jedna z kláves [A] nebo [B]. Naproti tomu tatáž podmínka zapsaná bez závorek:

"Nějaký předmět AND [A] OR [B]"

je splněna právě tehdy, platí-li alespoň jedno z následujících tvrzení:

1.Před Baltíkem je předmět a současně byla stisknuta klávesa [A].

2.Byla stisknuta klávesa [B] (v tomto případě už nezáleží na tom, co je před Baltíkem).

Stejnou podmínku bychom za pomoci závorek zapsali:

"(Nějaký předmět AND [A]) OR [B]"

Složitější podmínky budou vždy přehlednější, použijete-li závorky.

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)