Tato sekce obsahuje následující témata:
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
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.
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á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.
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.
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.
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.
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].
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 běží
Podmínka je splněna, pokud stopky právě běží.
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) |