Nápověda ke Karlovi
Nápověda ke Karlovi
Rozvržení plochy
Pracovní plocha se člení na tři panely: nahoře nabídka, vlevo dvoreček a vpravo nápověda, případně něco jiného. V levém panelu vidíte na dvorečku Karla a pod dvorečkem okamžitý stav – obvykle „OK“, po vykonání některých slov také „ano“ nebo „ne“ a při běhu navíc informace o hloubce vnoření a o počtu průchodů cyklem.
V pravém panelu se zobrazuje podle potřeby nápověda, slovník nebo výpis programu. Pravý panel se používá také pro import a export slovníku.
Hlavní nabídka, export, import
Hlavní nabídka obsahuje tyto ovládací prvky:
Tlačítko slovník zobrazí do pravého panelu obsah slovníku a do horního panelu přidá nabídku slovníku.
Textové pole a tlačítko import slouží k načtení obsahu slovníku ze souboru, kam byl dříve obsah slovníku exportován. Klepněte na tlačítko „import“ a postupujte podle návodu, který se zobrazí v pravém panelu. V pravém panelu dole klepněte na tlačítko „import“, obsah textového pole se uloží do slovníku, do dvorečku a také Karel zaujme polohu a orientaci, která se najde v textovém poli. Import obsahu slovníku můžete vyzkoušet na přiloženém souboru „priklady.txt“.
Tlačítko export vypíše do textového pole v pravém panelu obsah slovníku, obsah dvorečku a polohu a orientaci Karla v podobě, ve které se dá uložit do souboru. Obsah panelu uložte do souboru podle návodu, který se zobrazí v záhlaví pravého panelu (viz též tyto poznámky).
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Přepínačem co udělá myš na dvorečku? zvolte, zda chcete klepnutím do dvorečku umístit zeď, položit značku, zvednout značku nebo přemístit Karla.
Pozn.:
Kromě možnosti eportovat a importovat slovník lze aktuální stav slovníku průběžně ukládat do lokálního úložiště a při spuštění Karla pak obnovovat poslední uložený stav. Po první změně slovníku budete dotázáni, zda chcete aktuální stav slovníku ukládat. Pokud ano, slovník se uloží do lokálního úložiště do položky „KarelDictionary“. Tímto způsobem je možné pohotově pokračovat v práci, která byla přerušena. POZOR: Obsah úložiště je dostupný jen na tom počítači, kde byl uložen, a pro toho přihlášené uživatele, který obsah uložil. Chcete-li obsah slovníku přenést na jiný počítač nebo předat jinému uživateli, exportujte a importujte.
Slovník
Slovník se zobrazí v pravém panelu. Klepněte do slovníku na slovo, které chcete vybrat. V nabídce pak zvolte činnost, kterou chcete s vybraným slovem vykonat. Nabídka slovníku obsahuje tyto ovládací prvky:
Tlačítko vložit zobrazí dialogové okno, kam napíšete jméno nového slova, a vloží nové slovo do slovníku.
Tlačítko odstranit odstraní právě vybrané slovo ze slovníku.
Tlačítko přejmenovat zobrazí dialogové okno, kam napíšete nové jméno, a přejmenuje právě vybrané slovo ve slovníku.
Tlačítko upravit zobrazí do pravého panelu program slova, které je právě vybrané ve slovníku. Zobrazí se nabídka pro úpravy slova.
Tlačítko běh spustí rychlý běh slova vybraného ve slovníku.
Tlačítko po slovech spustí krokování slova vybraného ve slovníku.
Tlačítko animovat spustí zpomalený běh slova vybraného ve slovníku. Rychlost animace se řídí číslem v textovém poli.
Textové pole rychlost animace smí nabývat hodnot v rozmezí 1-9 (9 je nejrychlejší).
Přepínačem krokovat dovnitř / přes zvolte, zda při krokování se mají krokovat i všechna vnořená slova nebo jen slovo, které jste zvolili ve slovníku. Vnořená jsou slova volaná ze slova, které jste zvolili ve slovníku, a slova volaná z vnořených slov.
Úprava slova
V pravém panelu se zobrazí program slova vybraného ve slovníku. Pod programem slova se zobrazí odkaz přidat na konec. Klepnutím na tento odkaz přidáte nový příkaz na konec programu slova a začnete jej upravovat. Je-li slovo prázdné, začněte tvořit program klepnutím na tento odkaz.
V nabídce se zobrazí přepínač s těmito volbami:
Je-li zvoleno upravit, klepnutím na příkaz v programu začnete upravovat příkaz.
Je-li zvoleno vložit před, klepnutím na příkaz v programu vložíte nový příkaz a začnete jej upravovat.
Je-li zvoleno přidat za, klepnutím na příkaz v programu přidáte nový příkaz a začnete jej upravovat.
Je-li zvoleno odstranit, klepnutím odstraníte příkaz z programu.
Úpravy slova ukončete např. klepnutím na tlačítko „slovník".
Úprava příkazu
V pravém panelu se zobrazí výpis programu slova. V horním panelu se zobrazí nabídka, která obsahuje aspoň tyto ovládací prvky:
Roleta s nabídkou příkazů se rozvine klepnutím na tlačítko 🔽.
Tlačítko OK ukončí úpravy příkazu a vrátí se k úpravám slova.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Příkazy když, dokud, opakuj...krát a opakuj...až obsahují ještě další ovládací prvky.
Úprava příkazu když
V pravém panelu se zobrazí výpis programu slova. V horním panelu se zobrazí nabídka, která může obsahovat tyto ovládací prvky:
Roleta s nabídkou příkazů.
Roleta s nabídkou negace podmínky.
Roleta s nabídkou podmínek.
Tlačítko vložit dovnitř vloží příkaz do těla podmíněného příkazu (do větve „tak“).
Tlačítko vložit „jinak“ vloží příkaz do podmíněného příkazu do větve „jinak“.
Tlačítko OK ukončí úpravy příkazu a vrátí se k úpravám slova.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Úprava příkazu dokud
V pravém panelu se zobrazí výpis programu slova. V horním panelu se zobrazí nabídka, která může obsahovat tyto ovládací prvky:
Roleta s nabídkou příkazů.
Roleta s nabídkou negace podmínky.
Roleta s nabídkou podmínek.
Tlačítko vložit dovnitř vloží příkaz do těla příkazu dokud.
Tlačítko OK ukončí úpravy příkazu a vrátí se k úpravám slova.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Úprava příkazu opakuj ... krát
V pravém panelu se zobrazí výpis programu slova. V horním panelu se zobrazí nabídka, která může obsahovat tyto ovládací prvky:
Roleta s nabídkou příkazů.
Textové pole, do kterého napíšete požadovaný počet opakování (celé číslo).
Roleta s nabídkou typu příkazu opakuj: příkaz „opakuj ... až“ skončí splněním podmínky, kdežto příkaz „opakuj ... krát“ má zadaný pevný počet opakování.
Tlačítko vložit dovnitř vloží příkaz do těla příkazu opakuj.
Tlačítko OK ukončí úpravy příkazu a vrátí se k úpravám slova.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Úprava příkazu opakuj ... až
V pravém panelu se zobrazí výpis programu slova. V horním panelu se zobrazí nabídka, která může obsahovat tyto ovládací prvky:
Roleta s nabídkou příkazů.
Roleta s nabídkou typu příkazu opakuj: příkaz „opakuj ... až“ skončí splněním podmínky, kdežto příkaz „opakuj ... krát“ má zadaný pevný počet opakování.
Roleta s nabídkou negace podmínky.
Roleta s nabídkou podmínek.
Tlačítko vložit dovnitř vloží příkaz do těla příkazu opakuj.
Tlačítko OK ukončí úpravy příkazu a vrátí se k úpravám slova.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Běh, krokování, animace
Běh je co nejrychlejší a zobrazí se jenom výsledek, kdežto při krokování nebo animaci můžete sledovat chování Karla na dvorečku, průběžný stav a vykonávané příkazy. V nabídce se mohou objevit tyto ovládací prvky:
Tlačítko pokročit vykoná jeden krok v programu slova.
Tlačítko zastavit zastaví Karla a zobrazí o tom zprávu. Klepněte na toto tlačítko, když Karel běží příliš dlouho – v programu slova může být nekonečný cyklus nebo příliš hluboká rekurze. Překročí-li rekurze nastavenou mezní hloubku, Karel se zastaví sám a zobrazí o tom zprávu. Překročí-li cyklus nastavený mezní počet průchodů, Karel se také zastaví a zobrazí o tom zprávu.
Tlačítko nápověda zobrazí tuto nápovědu do zvláštního okna.
Nastavení konstant
Přímo v javascriptu v souboru „karel.htm“ se nastavují tyto konstanty:
dimension = 8; ...velikost Karlova dvorečku
ms_thisfilename = "karel.htm"; ...jméno souboru, který obsahuje Karla
machine__max_nest = 1000; ...mezní hloubka rekurze
machine__max_loops = 200; ...max. počet průchodů cykly „while“ nebo „until“
mi_speed = 5; ...přednastavená rychlost animace (objeví se v menu)
ms_importfile = spell["priklady"]; ...přednastavené jméno importovaného souboru (objeví se v menu)
Při dosažení mezní hloubky rekurze se zobrazí zpráva a Karel se zastaví. Do hloubky rekurze se kromě volání slov z programu započítává i vnoření strukturovaných příkazů „když“, „dokud“ a „opakuj“.
Jazykové verze
Karel je nyní k dispozici česky a anglicky. Každá jazyková verze má svůj jazykový slovníček v souboru „spell_cz.js“ nebo „spell_en.js“. Chcete-li změnit jazyk, vytvořte kopii příslušného slovníčkového souboru a pojmenujte ji „spell.js“.
Chcete-li vytvořit novou jazykovou verzi, vytvořte nový soubor s jazykovým slovníčkem a nový soubor s nápovědou. Jazykový slovníček obsahuje přiřazovací příkazy, vpravo od rovnítka je vždy text v daném jazyce. Položka „karhelp" obsahuje jméno souboru s nápovědou, např.:
spell ["karhelp"] = "khelp_cz.htm";
Autorská práva
Karla v javascriptu jsem napsal já, (c) Ivan Ryant 2000-2023. Poskytuji ho volně k nevýdělečnému šíření a užití. Případné jiné způsoby šíření nebo užití je potřeba projednat zvlášť.
Program se poskytuje, jak je. Program může obsahovat neúmyslné chyby, proto nedávám žádné záruky a zříkám se odpovědnosti za škody, které uživateli mohou vzniknout používáním programu. Případné připomínky nebo zprávy o nalezených chybách mi prosím sdělte nejlépe elektronickou poštou.
Poznámky k verzi
Tuto implementaci Karla jsem naprogramoval především proto, abych se naučil javascript. Takže jsem ho trochu sprasil a nadělal jsem do něj různé neúmyslné chyby, které je těžko odstranit. To bylo v srpnu 2000 až v lednu 2001.
V červenci-srpnu 2001 jsem se pokusil upravit Karla, aby chodil pod Netscapem. Musel jsem úplně předělat nabídku, protože se mi nedařilo nastavit atribut DISPLAY='none' v prvku DIV. Takže nestačí skrývat a odkrývat tlačítka v nabídce, nýbrž musím po každém kliknutí přepsat celý rám nabídky novým dokumentem. Přepisování se ovšem nesmí spustit tlačítkem, které se nachází v tom přepisovaném dokumentu, takže jsem všechna tlačítka nahradil hyperlinkem. Ze stejného důvodu nemohu naprogramovat rolety prvkem SELECT, takže i všechny prvky SELECT jsem nahradil hyperlinkem a seznam možností zobrazuju do rámu, kde se normálně nachází dvoreček. Při té příležitosti jsem naprogramoval i všechny přepínače jako hyperlinky. Dosáhl jsem toho, že anglická verze jakž-takž chodí, s českou abecedou jsou ovšem potíže (nejde jen o zobrazení, ale také o zpracování v javascriptu včetně uložení slovníku v javascriptových objektech).
V říjnu-listopadu 2002 jsem opravil všechny nově odhalené chyby a zlepšil ovládání. Opravil jsem mazání a přejmenovávání slov ve slovníku a chybu při editaci programu (místo prvního příkazu ve slově se smazaly všechny ostatní příkazy). Pod dvorečkem se nyní zobrazuje výsledek podmínky modifikovaný slovem je/není v příkazech dokud, když a opakuj...až (např. stojí-li Karel u zdi a vykonává příkaz když není zeď, zobrazí se NE, kdežto dříve se zobrazilo ANO; v případě příkazu když je zeď se nyní zobrazí ANO stejně jako dříve). Slovník se nyní exportuje do zvláštního okna, nikoli již do pravého panelu – v NS lze uložit slovník volbou Save As. Po importu se v pravém panelu automaticky zobrazí slovník. Zavedl jsem omezení na počet průchodů cyklem, takže cykly nemohou být nekonečné (dřív byl omezen jen počet rekurzivních vnoření). Pole v javascriptu nyní indexuji textovými řetězci, které obsahují výhradně znaky ASCII (v podstatě kóduji řetězce šestnáctkově, dřív jsem indexoval přímo slovy ze slovníku – snad tím pominou potíže s češtinou).
Koncem roku 2023 jsem přenesl Karla na aktuální verze webových prohlížečů Mozilla Firefox 120.0 pro Linux Mint (64 bitů) a Chromium verze 116.0.5845.102 (oficiální sestavení pro Debian).
Známé chyby
Pomocí ctrl-R se Karel znovu načítá chybně. Tatáž chyba se projeví i při kliknutí na příslušnou ikonu v záhlaví webového prohlížeče. Místo toho nastavte kurzor do adresní řádky (např. kliknutím myší) a klávesou Enter znovu načtěte celou stránku s Karlem.
Ostatní chyby známé k 8.12.2023 jsem odstranil.
Na podzim 2023 jsem přenesl Karla na aktuální webové prohlížeče. Původní webovou implementaci Karla jsem napsal v roce 2001 pod MSIE5. Úpravy v roce 2002 jsem dělal pod MSIE6. Pokusil jsem se upravit Karla i pro Netscape Communicator 4.78, ale bohužel ne zcela úspěšně:
Nevěděl jsem jistě, zda už funguje česká verze, která používá kódovou stránku windows-1250 nebo iso-8859-2. Nezapomeňte přidat češtinu do seznamu jazyků v Edit/Preferences/Navigator/Languages.
Uživateli bylo chybně umožněno měnit obsah exportu a importu, protože se ignoroval atribut DISABLED v prvku TEXTAREA.
Pokyny, které se zobrazovaly při exportu, nebyly zcela správné. Zdrojový kód se nezobrazoval v poznámkovém bloku a nedal se uložit. Poznámkový blok ovšem bylo možné spustit samostatně a zdrojový kód do něj přenést přes schránku. V NS funguje správně i volba File/Save As... v nabídkové liště okna. V MSIE fungovala chybně!
Všechny hyperlinky byly podtržené, protože se ignoroval styl A {text-decoration=none}.
Nevím, zda Karel bude správně fungovat pod jinými prohlížeči. Zásadní podmínka je, aby prohlížeč podporoval javascript a aby skripty nebyly zakázané. V MSIE se to nastaví volbou Nástroje/Možnosti Internetu/Zabezpečení/Vlastní úroveň/Skriptování: povolit. Potíže se mohou projevit při zobrazování dokumentů z keše místo dokumentů čerstvě generovaných. Já mám v MSIE zatrženo Nástroje/Možnosti Internetu/Obecné/Nastavení/Zjišťovat existenci novějších verzí uložených stránek: Automaticky. Použijete-li tlačítko „back“, snad bude fungovat, ale nedivte se ničemu. Dojde-li k potížím s češtinou, zkuste nastavit českou kódovou stránku (např. windows-1250) jako default (např. v NS Navigator volbou View/Character Set/Set Default Character Set).
Připomínky nebo zprávy o nalezených chybách mi prosím sdělte nejlépe elektronickou poštou.