Úvod

Program xKarel někomu může připadat jako hra, někomu jako jednoduchý programovací jazyk. Program xKarel je rozhodně vynikající nástroj jak se naučit strukturovaně programovat, a to zvláště pro děti. Jediná podmínka pro práci s tímto programem je, aby uživatel již uměl číst a psát. Vytváření nových procedur nutí uživatele k algoritmizaci daného problému, a rozdělení problému na menší části. Program Karel byl v naší zemi velmi populární v době 8-mi bitových počítačů.

O co jde?

Karel je robot, který se pohybuje po šachovnici, jejíž velikost lze nastavit. Karel zná jednoduché povely, jako je povel na provedení kroku, otočení se do leva, položení cihly na šachovnici, či zvednutí cihly ze šachovnice. Karel se může naučit novým povelům od uživatele, který je naprogramuje kombinací z již známých povelů. Program pro robota Karla se řídí syntaktickými pravidly, která jsou popsána v nápovědě. xKarla jsme původně napsali jako semestrální práci na vysoké škole ( VŠB - TU OSTRAVA Fakulta Elektrotechniky a Informatiky Katedra informatiky, Předmět "Objektově orientované programování").

Získání xKarla a jeho instalace

Karla lze získat zadarmo na adrese xKarel.sourceforge.net. Karel je šířen pod licencí GPL. Můžete zde získat binární (zkompilovanou) verzi pro Microsoft® Windows®, nebo Linux. Dále zde můžete získat zdrojové texty xKarla, které si můžete sami zkompilovat, pokud používáte jinou platformu.

Menu programu

V této kapitole popíšeme jednotlivé položky menu. Hlavní menu:

Popis jednotlivých voleb menu

Nový

Program vytvoří nový katalog povelů. Smaže všechny uživatelem definované povely.

Otevřít...

Program načte katalog povelů ze souboru. Tato volba zobrazí standardní okno pro otevírání souborů. Katalog povelů pro robota Karla má koncovku "krl". Otevřením nového katalogu dojde ke ztrátě všech uživatelem definovaných povelů. Nechcete-li smazat staré povely, použijte volbu Přidat.

Přidat...

Program načte katalog povelů ze souboru. Tato volba zobrazí standardní okno pro otevírání souborů. Katalog povelů pro robota Karla má koncovku "krl". Přidáním povelů z katalogu do aktuálního katalogu, který používáte nedojde ke ztrátě uživatelem definovaných povelů. Chcete-li smazat staré povely, použijte volbu Otevřít. Jsou-li v katalogu, který právě používáte povely stejného názvu, jako v katalogu na disku, budou vymazány, a nahrazeny povely z disku.

Uložit

Uloží povely aktuálního katalogu do diskového souboru.

Uložit jako...

Uloží povely aktuálního katalogu do diskového souboru, ale před tím se zeptá na název souboru.

Konec

Ukončí program xKarel.

Provést

Spustí provádění povelů. Je-li nějaký povel z části spuštěný (při ladění), potom bude Karel v tomto povelu pokračovat. Není-li žádný povel z části vykonán, začne se od začátku vykonávat povel, na kterém je v katalogu povelů (viz. Okna) kurzor.

Krok

Karel provede krok. Viz ladění

Detailní krok

Karel provede detailní krok. Viz ladění

Stop

Karel zastaví provádění povelu.

Reset

Karel zastaví provádění povelu, je-li nějaký prováděn. Dále odstraní ze šachovnice všechny cihly, a uvede se do výchozí pozice. Byl-li laděn nějaký povel, toto ladění se zruší.

Nový povel

Přidá nový povel. Zobrazí editační okno pro nový povel. Blíže v kapitole Krok po kroku.

Editace

Modifikuje povel, na němž je kurzor v katalogu povelů. (Viz Krok po kroku)

Smazat

Smaže povel, na němž je kurzor v katalogu povelů. (Viz Okna)

Náhodně rozestav cihly

V místnosti se náhodně rozloží cihly. Vhodné pro testování nových procedur.

Skrýt elementy

Je-li tato volba vybrána v seznamu povelů nebudou zebrazeny elementární povely. Můžete si vybrat, co vám připadá přehlednějsí.

Místnost...

Umožní Vám nastavit velikost místnosti. Rozměry místnosti jsou udávány v počtech polí. Dále vám také umožní nastavit hustotu pokrytí cihlami při náhodném rozestavení. Je-li hustota 0%, potom se pří náhodném rozestavění cihlel nepostaví žádná cihla. Naopak je-li hustota 100%, potom se šachovnice celá pokryje cihlami. Můžete zde rovněž nastavit maximální možný počet cihel na jednom poli.

Jazyk

Vyberte jazyk, ve kterém je napsán zdrojový text. Vyberete-li si standartní, je použit jazyk prostředí, ve kterém Karel běží (Viz lokalizace). Můžete si vybrat i jiný jazyk. Program to umožňuje. V současné době je k dispozici pouze Anglický a Český jazyk. Názvy elementárních povelů budou v jazyce, který si zvolíte.

Nahrej nastavení

Obnoví uložené nastavení programu.

Ulož nastavení

Uloží aktuální nastavení programu do souboru. V Unixových systémech vytvoří soubor .xkarelrc ve vašem domovském adresáři. Ve Windows® vytvoří soubor xkarel.cfg ve svém adresáři.

Původní nastavení

Nastaví implicitní nastavení programu.

Syntaxe

Zobrazí nápovědu k syntaxi jazyka pro robota Karla.

Program

Zobrazí tuto nápovědu.

O programu

Zobrazí informace o programu xKarel, a o jeho autorech.

Okna programu

Program xKarel po spuštění zobrazí dvě okna. Okno "Katalog", a okno "Místnost".

Okno "Katalog"

Okno katalogu s nápovědou

Okno "Místnost"

Okno místnosti v 3D provedení

Okno "Místnost" (classic verze)

Okno místnosti v 2D provedení

Tlačítka programu

Okno "Katalog" má celkem 11 tlačítek. Tlačítka slouží pouze pro urychlení práce s programem. Význam všech tlačítek je stejný jako význam voleb v menu. Oproti minulým verzím jsou tlačítka označeny nikoliv textem, ale malým obrázkem, jak bývá zvykem u mnoha programů. Význam tlačítek:

POŘADÍ ZLEVA OBRÁZEK ODPOVÍDÁ VOLBĚ V MENU
1 Nový dokument Soubor / Nový
2 Načtení dokumentu z diskového zařízení Soubor / Otevřít
3 Uložení dokumentu do diskového zařízení Soubor / Uložit
4 Blesk Příkaz / Provést
5 Šipka s obloukem nahoře Příkaz / Krok
6 Šipka s obloukem dole Příkaz / Detailní krok
7 Kolečko s písmenem s (skoro dopravní značka stop) Příkaz / Stop
8 Drát vytažený ze zásuvky Příkaz / Reset
9 Zeď z cihel Místnost / Náhodně rozestav cihly
10 Nový povel Příkaz / Nový povel
11 Povel Příkaz / Editace

Používání těchto tlačítek urychluje práci s Karlem. Nemusíte pracně hledat volby v menu programu, stačí pouze kliknout na daný obrázek. Dalším urychlením práce jsou Zkratkové klávesy.

Menu okna Editace

Zvolíte-li v hlavním menu programu volbu Příkaz a podvolbu Nový povel, nebo Editace zobrazí se vám editační okno. V této kapitole si povíme něco o volbách v menu tohoto okna.

Popisy jednotlivých voleb menu:

Vytvořit

Vytvoří novou (aktualnizuje) proceduru v katalogu, ale nezavře editační okno. Máte-li ve zdrojovém textu chybu, budete na ni upozorněni.

Zavřít

Ukončí editaci. Vytvoří novou (aktualizuje) proceduru v katalogu. Budete vyzváni, aby jste potvrdili aktualizaci. Potvrdíte-li aktualizaci, program zkontroluje zda nemáte ve zdrojovém textu chybu.

Vyjmout

Vyjme označenou část textu. Označený text uloží do schránky. Ze schránky je možné vyjmutý text ložit zpátky.

Kopírovat

Zkopíruje označenou část textu do schránky. Ze schránky je možné vyjmutý text ložit zpátky.

Vložit

Vloží text ze schránky.

Vybrat vše

Označí veškerý text v okně. Označený text lze vyjmout, nebo kopírovat.

Zkratkové klávesy

Zkratková klávesa je klávesa, či kombinace více kláves na klávesnici počítače. Stisknutím klávesové zkratky na klávesnici vyvolá nějakou činnost. Přehled klávesových zkratek:

KLÁVESA ODPOVÍDÁ VOLBĚ V MENU
F1 Nápověda / Syntaxe
F2 Soubor / Uložit
F3 Soubor / Otevřít
F4 Příkaz / Náhodně rozmístit cihly
F5 Příkaz / Nový povel
F6 Příkaz / Editace
F7 Příkaz / Detailní krok
F8 Příkaz / Krok
F9 Příkaz / Provést
F10 Příkaz / Reset
ESC Příkaz / Stop

Krok po kroku

V této kapitole vám ukážeme krok po kroku, jak vytvořit nový povel, a jak jej spustit.

  1. Vyberte v menu volbu Příkaz a v ní volbu Nový povel. Zobrazí se editační okno. Vyplňte text v okně přesně tak, jak je uvedeno na obrázku. V menu editačního okna vyberte volbu Příkaz a podvolbu Konec editace. Než začnete tvořit své vlastní povely, dobře si prostudujte syntaxi jazyka pro robota Karla.
    Okno pro editaci příkazu
    Bude dotázání, zda má program aktualizovat proceduru. Volbou Zrušit stornujete zavírání okna, a můžete nový povel dále měnit. Volbou Ano dojde k vytvoření nového povelu. Máte-li v textu nějakou chybu, budete na tento fakt upozorněni. Volbou Ne nebude nový povel (procedura) vytvořen.
  2. Ladění a spouštění tohoto povelu. Nastavte v seznamu povelů kurzor na povel "ČelemVzad". (Jednou klikněte myší na tento povel.) Provedli-li jste 1. krok správně, měl by zde tento povel být. Nyní můžete zvolit v menu volbu "Příkaz" a podvolbu "Proveď". Karel se v místnosti otočí čelem v zad. Mějte kurzor stále nastavený na povelu "ČelemVzad", a třikrát zvolte v menu "Příkaz" podvolbu "Detailní krok". Sledujte při tom, co Karel v místnosti dělá. K tomuto blíže v kapitole o ladění. Doporučuji Vám ještě vytvořit následující proceduru:
    Procedura VpravoBok
    {
       # Povel, který otočí Karla doprava
       ČelemVzad
       VlevoBok
    }
    

    Tato procedura se vám bude hodit v další kapitole. Můžete opět tuto proceduru spustit, či ji "krokovat".

  3. Nové povely v katalogu uložit do diskového souboru. Neučiníte-li tak, nebudete mít tyto povely při příštím spuštění Karla k dispozici. Zvolte tedy v menu volbu Soubor a podvolbu Uložit. Při příštím spuštění Karla zvolte volbu Soubor a podvolbu Otevřít..., nebo podvolbu Přidat k načtení povelů z diskového souboru. Viz kapitola Menu. Kdykoliv se Vám bude zdát práce s menu programu zdlouhavá můžete použít Tlačítka programu, nebo Zkratkové klávesy pro urychlení práce.

POZNÁMKA: Zkuste se zamyslet, proč nebylo lepší definovat nejprve povel "VpravoBok" pomocí povelů "VlevoBok", a potom povel "ČelemVzad" pomocí povelů "VpravoBok".

Ladění

Ladění je vlastně hledání chyb v procedurách (povelech) pomocí postupného krokování těchto povelů. Jak se krokuje, a jaký je rozdíl mezi možnostmi "Krok" a "Detailní krok" si vysvětlíme na povelech "ČelemVzad" a "VpravoBok" z předchozí kapitoly. Nastavte v seznamu povelů kurzor na povel "VpravoBok", a zvolte v menu "Příkaz" podvolbu "Detailní krok", nebo "Krok". (Můžete také využít Tlačítka programu, nebo Zkratkové klávesy.) V tomto případě je jedno kterou volbu zvolíte. V těle povelu se vám zvýraznil řádek, který se má provést. Na tomto řádku by měl být povel "ČelemVzad". Chcete-li otočit Karla v zad, vyberte volbu v menu "Příkaz", podvolbu "Krok", chcete-li i povel "ČelemVzad" detailně krokovat, vyberte volbu v menu "Příkaz", podvolbu "Detailní krok". Vyzkoušejte obě možnosti, uvědomíte si tím rozdíl mezi "Krok" a "Detailní krok". Pomocí těchto mechanizmů můžete sledovat co Karel dělá při provádění povelů, a hledat tak chyby. Budete-li chtít krokování ukončit, zvolte v menu volbu Příkaz a podvolbu Reset, nebo nechte Karla rozdělanou práci dokončit volbou menu "Příkaz", podvolbu "Proveď".

Lokalizace

Karla lze teoreticky přeložit do jakéhokoliv jazyka. V současné době je k dispozici pouze Český a Anglický jazyk. Program může mít lokalizované jak prostředí, tak i jazyk zdrojových textů programů pro robota. Obojí lze lokalizovat nezávisle na sobě. Můžete tedy mít program v Angličtině a používat názvy elementárních příkazů v Českém jazyce, nebo naopak.

Lokalizace zdrojových textů

Karel používá implicitně názvy elementů v jazyce, v němž je lokalizován program. Chcete-li změnit jazyk, ve kterém budete psát zdrojové texty, zvolte v menu volbu Nastavení a podvolbu Jazyk. Zde si můžete vybrat jazyk, ve kterém budou zdrojové texty pro robota Karla.

Lokalizace programu v systémech Unixového typu

Program automaticky zjistí, o jakou lokalizaci jde. V současné době je k dispozici pouze Český jazyk pro české prostředí a Anglický jazyk pro zbytek. Chcete-li mít Karla v Českém jazyce, nastavte proměnnou prostředí LANG na hodnotu cs_CZ. Spusťte například xterm, máte-li například jako svůj shell bash, napište export LANG=cs_CZ. Poté z tohoto okna můžete spustit Karla. Nechcete-li nastavovat proměnnou prostředí lze také spustit Karla LANG="cs_CZ" xkarel

Lokalizace programu ve Windows®

Program si automaticky zjistí, o jakou lokalizaci Windows® se jedná. Podle toho vybere svůj jazyk. V současné době je k dispozici pouze Český jazyk pro české prostředí Windows®. Pro ostatní je k dispozici Anglický jazyk. Chcete-li změnit jazyk ve Windows®, nastavte si jazyk v ovládacích panelech Windows®.

Otázky a odpovědi

Zde naleznete odpovědi na vaše pravděpodobné otázky.

Proč Karel vykoná jiný příkaz na stisk tlačítka s bleskem ("proveď"), než který je vybrán v seznamu povelů?
Asi jste před tímto provedením nějaký povel ladil, a ladění jste neukončil. Zvolte v menu volbu Příkaz a podvolbu Reset. Nyní by se již měl provádět opravdu zvolený povel.
Co jsou to soubory s koncovkou "krl"?
Jedná se o katalogy robota Karla uložené v diskovém souboru. Je to vlastně zdrojový text vašich povelů.
Proč se neotevřelo okno "Místnost"?
Okno se určitě otevřelo, ale je možná zakryto oknem "Katalog". Zkuste přesunout okno "Katalog" na jiné místo obrazovky.
Co mám dělat, když nevím jak mám vytvořit nový povel?
Podívejte se na syntaxi jazyka pro robota Karla volbou v menu Nápověda a podvolbou Syntaxe, a podívejte se také na postup krok po kroku.