Jdeme na to s Urwigem - 8. Diagramy kódů
Minule jsme si uvedli, jakým způsobem se do wheriga dostává požadovaná akce. Že je využit princip událostmi řízeného programování. Práce autora wheriga tedy spočívá v napsání kódu k požadovaným událostem. Nejdůležitější události jsme si už popsali, teď je na řadě si konečně ukázat, jak se ten kód píše.
Předpoklady pro psaní kódů
Samozřejmě základní možností je napsat kód v LUA. Jenže k tomu člověk potřebuje umět programovat a ještě znát syntaxi jazyka. Urwigo se naštěstí vydalo jiným směrem. Umožňuje skládat kód do grafického diagramu, kde je vše přehledně vidět. Autor nepotřebuje znát programovací jazyk, pomocí myši si jednoduše poskládá, co potřebuje, a Urwigo to pak nakonec při vytváření cartridge převede do příkazů jazyka LUA.
Co by však autor ovládat měl (minimálně mu to bude užitečné), je algoritmické myšlení. Tj. schopnost najít ucelené dílčí kroky, jejichž vhodným poskládáním se dobereme řešení konkrétního problému.
S algoritmickým myšlením je to, dle mého názoru, podobné jako s psaním. Můžeme se naučit gramatice, základním pravidlům slohového projevu, můžeme projít i kursem tvůrčího psaní, kde nás naučí funkční postupy, pokud však nemáme ke spisovatelství vlohy, nikdy to, co napíšeme, nebude mít valného úspěchu. Stejně tak se můžeme naučit syntaxi programovacího jazyka, základním algoritmickým konstrukcím, můžeme projít kursem programování, pokud však k tomu nemáme vlohy, mohou sice naše programy fungovat, ale něco jim přece jenom bude chybět.
Nekladu si za cíl nikoho učit těmto základům. Ani zkoumat, kdo má jaké vlohy. V dalších částech seriálu budu předpokládat, že autor wheriga tyto základy chápe a umí používat. Jaký bude výsledek jeho snažení, se teprve ukáže.
Práce s diagramovými akcemi
Jak již jsem uvedl v povídání o pracovní ploše, její levá horní část je vyhrazena seznamu diagramových akcí. Ty jsou rozděleny na dvě skupiny:
- Akce - příkazy, ze kterých se skládá požadovaný kód. Jsou používány samy o sobě. Některé vyžadují bližší upřesnění pomocí výrazu nebo objektu či vlastnosti.
- Výrazy - výsledkem výrazu je nějaká hodnota - číselná (např. 5), textová (např. Ahoj), logická (např. Pravda, Nepravda). Nelze je použít samostatně, ale vždy pouze uvnitř speciálních příkazů, jako třeba Nastav, Když/jinak apod.
Přidání akce do diagramu
Když si poprvé otevřeme diagram k nějaké události, obsahuje prázdný čtverec (nebo obdélník) s názvem objektu a události. Nyní si stačí v seznamu akcí vybrat tu, kterou právě chceme použít, a pomocí levého tlačítka myši ji jednoduše přetáhnout na požadované místo a pustit (tzv. drag&drop).
Většina akcí potřebuje po svém přidání do diagramu upřesnit. Pokud je upřesnění povinné, Urwigo nám tuto informaci vypíše jako chybu do spodního panelu. V popisu chyby se dozvíme, v jakém objektu a k jaké chybě došlo. Chybná akce je také přímo v diagramu označena červeným křížkem ve svém pravém horním rohu. Upřesnění musíme provést podle typu akce - někdy stačí vyplnit upřesňující údaje v pravém panelu vlastností, jindy je nutné na akci přetáhnout nějaký výraz (k tomu se použije stejná metoda drag&drop). Jakmile to provedeme správně, indikátor chyby zmizí. Pokud nezmizel, potom jsme buď upřesnění provedli špatně, nebo neúplně. Vždy se musíme dostat do stavu, kdy je seznam chyb prázdný.
Přesun na jiné místo
Akci, kterou jsme umístili do diagramu, můžeme později přesunout na jiné místo. K tomu lze použít opět metodu drag&drop: levým tlačítkem myši uchopíme akci, přesuneme na nové místo a pustíme. Akce se přesune včetně svého upřesnění.
Podobně jako akce můžeme přesouvat i výrazy nebo hodnoty. Stačí myší uchopit výraz či hodnotu, přesunout na požadované místo a upustit. V takovém případě však lze s největší pravděpodobností očekávat, že původní akce bude následně označena jako chybná, protože jí bude výraz chybět. Pak je na nás, abychom tuto chybu vyřešili.
Jak uvidíme dále, přidáváním akcí do diagramu v něm budou vznikat ucelené bloky ohraničené čarou, tvořící samostatné obdélníky. Pomocí drag&drop lze přesouvat i celé tyto bloky.
Části diagramu k přesunu lze také označit. Pokud při stisknuté klávese Ctrl budeme klepat levým tlačítkem myši na požadované části, budou se postupně označovat. Nakonec pak můžeme vše označené najednou přesunout.
Kopie
Pokud při přesouvání části diagramu jakýmkoliv způsobem podle předchozího odstavce budeme současně držet stisknutou klávesu Ctrl, provede se místo přesunu kopie. To znamená, že původní část diagramu zůstane beze změny a na nové pozici se vytvoří její úplná kopie.
Neplatné cílové místo
Aby mohlo dojít ke kopii nebo přesunu, musí být cílové místo schopno novou část diagramu přijmout. Např. výraz lze umístit pouze tam, kde se může normálně vyskytovat. Pokud se přemisťovaný blok na dané místo nehodí, kurzor myši se změní na přeškrtnuté kolečko. Když jej zde upustíme, nic se nestane. Pokud se přemisťovaný blok na dané místo hodí, kurzor myši se změní na šipku, v případě kopie doplněnou symbolem „+“. Blok zde můžeme upustit.
Použití schránky
K přesunům a kopiím můžeme také využít schránku Windows (clipboard). Jakoukoliv označenou část můžeme pomocí kláves Ctrl+C nakopírovat nebo pomocí kláves Ctrl+X vyjmout do schránky. Stačí pak myší klepnout do cílového místa a klávesami Ctrl+V sem vložit obsah schránky.
I v Urwigu funguje schránka obdobně jako v jiných aplikacích. Obsah schránky zůstává k dispozici do té doby, než dojde k jeho přepsání pomocí Ctrl+C či Ctrl+X, nebo k ukončení Urwiga. V mezidobí lze tedy kombinaci Ctrl+V libovolně opakovat a vytvářet tak další a další kopie původní části.
Pomocí schránky můžeme přesuny nebo kopie provádět i mezi diagramy - v jednom diagramu označíme a umístíme do schránky a v jiném diagramu (nebo diagramech) vložíme. To nám velmi usnadní práci.
Omezení schránky
Na druhou stranu má schránka v Urwigu několik omezení dané automatickým generování identifikátorů objektů:
- Funguje pouze na části diagramů. Nelze kopírovat ani přesouvat celé objekty, jako třeba zóny, věci, postavy apod. V seznamech schránka nefunguje.
- Funguje pouze v rámci jednoho programového okna. Ačkoliv můžeme mít současně spuštěných více kopií Urwiga a v každé z nich otevřen jiný projekt, nelze žádným způsobem přenášet části diagramu z jednoho do druhého.
Vymazání části diagramu
Libovolnou část diagramu můžeme vymazat. To provedeme tak, že ji označíme a následně stiskneme klávesu Delete. Musíme však počítat s tím, že se nám mohou objevit nějaké chyby, které bude potřeba vyřešit.
Kontextové menu
Každá část diagramu může mít své tzv. kontextové menu. To je nabídka, která se zobrazí, pokud na tuto část klepneme pravým tlačítkem myši:
- Vyjmout, Kopírovat, Vložit - ekvivalenty horkých kláves pro práci se schránkou.
- Odstranit - ekvivalent horké klávesy pro vymazání.
- Zakázat nebo Povolit - podrobněji popíšeme níže.
Zakázání / Povolení akce
Každá akce, kterou v diagramu vytvoříme, je automaticky povolená a bude vykonána. V některých případech ale třeba budeme chtít, aby se některá akce neprováděla. Samozřejmě ji můžeme vymazat. Pokud se ale později rozhodneme, že akci zase chceme nechat provádět, budeme ji muset znovu vytvořit včetně všech jejích upřesnění.
Mnohem výhodnější může být takovou akci dočasně zakázat - klepneme pravým tlačítkem myši, zobrazíme si kontextové menu a z něj vybereme příkaz Zakázat. Zakázaná akce se přebarví na zeleno, z logiky věci by sice asi byla vhodnější jiná barva, ale to nevadí. Důležitější je, že tato akce se přestane vykonávat a vše bude fungovat tak, jako kdyby tam vůbec nebyla. Výhoda tohoto postupu je, že ji můžeme později kdykoliv zase stejným způsobem povolit a vše bude jako dřív.
Sbalení / Rozbalení části diagramu
U větších wherigo projektů mohou být diagramy dosti komplikované. V takových není jednoduché se orientovat a musíme hodně používat posuvníky v obou směrech. Urwigo nabízí šikovný prostředek, jak si diagramy zjednodušit.
Každý blok diagramu obsahuje vlevo od svého nadpisu malý trojúhelník. Klepnutím na něj dojde ke sbalení příslušného bloku, takže je z něj vidět pouze název. Tím se prohlížení diagramu výrazně zpřehlední. Opětovným klepnutím na trojúhelník se blok zase rozbalí do své původní podoby.
Sbalení bloku nemá žádný jiný význam, než zpřehlednění zobrazení diagramu pro autora. Všechny funkce bloku jsou zachovány i ve sbaleném stavu.
Pokračování: Jdeme na to s Urwigem - 9. Proměnné a práce s nimi