Karel se pohybuje ve velmi jednoduchém světě. Svět má tvar čtvercové mřížky a na každém políčku může být jen velmi málo různých věcí:
Karel umí jen pár příkazů:
DEFINE jmeno-funkce ... END
Karlův program se skládá z posloupnosti deklarací funkcí za kterou následuje jeden příkaz "RUN jmeno-funkce", který udává jméno "hlavní" funkce (tj. funkce, která se má spustit jako první). Níže na této stránce máte uvedeny dva příklady, které vám zápis programů ozřejmí.
Abyste si mohli Karlův programovací jazyk vyzkoušet, dáváme vám k dispozici jednoduchý simulátor. Stejně jako Karlův jazyk, i simulátor je velmi prostý (časem možná bude k dispozici i trochu graficky hezčí verze).
Pomocí tlačítek vpravo nahoře můžete přímo měnit Karlův svět (přidávat či rušit zdi a značky, umisťovat Karla). Do okna vlevo dole píšete vaše programy. Okno vpravo dole slouží k výpisu chybových hlášení. Jakmile zapíšete program, tak ho "načtete". Pokud načtení proběhne v pořádku, tak můžete zkusit program simulovat: buď po jednotlivých krocích nebo ho rovnou spustíte celý a podíváte se na konečný výsledek. Před dalším spuštěním musíte program znovu načíst.
Značky jsou reprezentovány čárkami "=", "-" (pokud je někde více jak 8 značek, používáme značení "moc"). Karel je reprezentován šipkou "v" nebo "<" nebo ">" nebo "^".
Příklady si můžete rovnou vyzkoušet přetažením do simulátoru.
Předpokládejme, že na ploše nejsou na začátku žádné značky. Po provedení následujícího programu bude na každém políčku řádku, na kterém Karel na začátku stál, jedna značka.
DEFINE TURNNORTH IFNORTH SKIP LEFT IFNORTH SKIP TURNNORTH END DEFINE GOTOWALL IFWALL SKIP STEP IFWALL SKIP GOTOWALL END DEFINE GOTOWALLMARK IFWALL SKIP STEP PUT IFWALL SKIP GOTOWALLMARK END DEFINE MAIN TURNNORTH LEFT GOTOWALL LEFT LEFT PUT IFWALL SKIP GOTOWALLMARK END RUN MAIN
Předpokládejme, že Karel stojí před hromádkou značek a jeho úkolem je přenést je všechny o políčko dál.
DEFINE TAKEONE TAKE STEP PUT LEFT LEFT STEP LEFT LEFT TAKEALL END DEFINE TAKEALL IFMARK TAKEONE SKIP END DEFINE MAIN STEP TAKEALL END RUN MAIN