Úvod

Podstata soutěže spočívá v řešení zadaných úloh, které řešící (soutěžící) posílá na Internet. Za vyřešení každé úlohy soutěžící získává body. Počet bodů určuje pořadí. Úkolem bude vždy napsat zdrojový text programu pro robota Karla, který vyřeší zadaný problém. Zdrojový text odešlete pomocí formuláře na náš server. Zde dojde k jeho vyhodnocení a případně k započítání výsledků. Vaše řešení server vyhodnocuje tak, že vámi zaslaný zdrojový text spustí na předem připravených situacích na šachovnici. Pod pojmem situace na šachovnici rozumíme rozměry šachovnice, rozmístění cihel, poloha robota a otočení robota. Každý zdrojový text bude několikrát vyzkoušen na různých situacích. Problém pro řešitele (a v tom je celá pointa soutěže) spočívá v tom, že řešitel se nikdy nedozví na jakých situacích (neboli na jakých vstupních datech) bude váš zdrojový text testován. Ještě zbývá podotknout, že tento princip soutěže je převzat z celosvětové soutěže organizace ACM, která pravidelně pořádá soutěže v programování vysokých škol z celého světa. V těchto soutěžích vytvářejí soutěžící programy v jazycích C/C++, Pascal, případně Java. Své řešení soutěžící odešlou k vyhodnocení a dozví se pouze, zda je řešení správné, či nikoliv. Data, na kterých byla úloha testována se nikdy nedozví. Zdá-li se někomu programovací jazyk Karel jako "méněcenný", může si vyzkoušet trénink na zmiňované soutěže ACM na adrese http://acm.uva.es.

Kdo se může účastnit?

Soutěž v programovacím jazyce Karel je určená pro ty, které zaujal programovací jazyk Karel, který je zdarma ke stažení na adrese http://xkarel.sourceforge.net. Jestliže vás robot Karel zaujal, je soutěž určená právě vám. Jestliže jste narazili na tuto stránku aniž by jste program Robot Karel znali, doporučujeme Vám nejprve jeho stažení z adresy http://xkarel.sourceforge.net/downloadsCZ.html. Chcete-li řešit úlohy, musíte se nejprve zaregistrovat. Registrace je zdarma. Registrovat se může jednotlivec, nebo skupina lidí. Po zaregistrování se z vás stává soutěžící. Podle svých možností si můžete libovolně vybírat ze sbírky úloh úlohy, které se rozhodnete řešit. Podle svých výsledků se bude průběžně měnit vaše umístění v pořadí soutěžících. Průběžně budeme dodávat nové úlohy různé obtížnosti. Jak doufáme, bude se také zvyšovat počet soutěžících. Na váš výsledek nemá žádný vliv doba, kdy se do soutěže přihlásíte (zaregistrujete). Nikdy není pozdě začít. Protože za námi nestojí žádný sponzor, který by poskytl nějaké ceny, je soutěž bez jakýchkoliv cen.

Pravidla soutěže

Zde do několika bodů shrneme pravidla soutěže.

  • Soutěžit může pouze zaregistrovaný uživatel. Při registraci zadáte své jméno a heslo, pomocí nichž budete odevzdávat úlohy.
  • Soutěžící může řešit úlohu, dokud ji nevyřeší. Soutěžící má na vyřešení úlohy libovolný počet pokusů.
  • Neúspěšný pokus o vyřešení nemá žádný vliv na hodnocení a pořadí soutěžícího.
  • Soutěžící nesmí řešit úlohu, kterou již úspěšně vyřešil. Takový pokus nebude nikde započítán.
  • Soutěžící může řešit libovolnou úlohu, kterou si vybere. Nesmí ji již mít vyřešenou.
  • Úlohy jsou bodovány podle obtížnosti.
  • Každé řešení musí obsahovat proceduru start. Tato procedura bude při kontrole řešení zavolána. Po jejím ukončení musí být splněn zadaný úkol.
  • Vyhodnocení řešení probíhá automaticky na straně serveru. Vyhodnocení se provádí testováním na předem daných situacích na šachovnici. Soutěžící se nemá možnost dozvědět, na jakých situacích na šachovnici je zaslané řešení testováno.
  • V řešení je možné zavolat pouze 5000 elementárních příkazů. Jedná se o dostatečně vysoké číslo. Nemusíte se ničeho obávat. Chráníme se tím pouze proti nekonečným smyčkám ve zdrojových textech.
  • V řešení je možné zavolat "pouze" 1000x jakoukoliv proceduru. Opět se nemusíte ničeho obávat. Chráníme se tím pouze proti nekonečným smyčkám ve zdrojových textech.
  • Výsledky každého soutěžícího jsou všem k dispozici na Internetu.
  • Zdrojové texty (řešení úloh) se na Internetu nezveřejňují ani nearchivují.
  • Při řešení úloh můžete počítat pouze s předpoklady, které jsou u zadání uvedené. Nic ostatního při testování není jisté.

Stránky

V této kapitole si popíšeme všechny obrazovky (www stránky) se kterými se můžete v této soutěži setkat.

Úvodní

Úvodní stránka slouží jako rozcestník. Je zde umístěno menu soutěže, které je přítomno na všech stránkách soutěže. Na úvodní stránce soutěže lze také nalézt informace k soutěži.

Registrační formulář

Stránka slouží k registrování nových soutěžících. Při vyplňování formuláře mějte na paměti, že všechny zadané údajů budou zveřejněny. Kolonky formuláře:

Jméno soutěžícího jednotlivce nebo družstva

Zde uveďte jméno, pod kterým bude soutěžící vystupovat. Každé jméno může být zaregistrováno jen jednou. Můžete zaregistrovat jednotlivce i kolektiv lidí.

Přístupové heslo

Heslo, pomocí kterého budete autorizováni. Každý kdo zná heslo může odevzdávat řešené úlohy a měnit registrační informace. Heslo musí mít minimálně 5 znaků. Maximálně 15.

Znovu potvrďte přístupové heslo

Zde napište vaše heslo znovu. Předchází se tím překlepům. Obě hesla napsaná na této stránce musejí být identická.

Adresa elektronické pošty (e-mail)

Zde napište vaší adresu elektronické pošty. Uvádějte funkční adresu. Jestliže zapomenete heslo, bude vám posláno pouze na tuto adresu.

Slovní charakteristika soutěžícího jednotlivce nebo soutěžícího družstva:

Zde můžete (ale nemusíte) napsat něco, co chcete aby o vás všichni ostatní věděli. Vše co napíšete, bude veřejně přístupné na WWW stránkách soutěže.

Registrace se provede kliknutím na tlačítko Zaregistrovat. Tím se dostáváte na stránku registrace.

Registrace

Na této stránce se zobrazí výsledek registrace.

Musíte zadat heslo dvakrát stejně. Asi došlo k překlepu. Zkuste to znova.
Registrace neproběhla. Zadal jste špatně heslo. Heslo musí být napsáno dvakrát stejně.
Bohužel název VAŠE JMÉNO je již registrován. Zvolte prosím jiný název.
Registrace neproběhla. Vámi zadané jméno soutěžícího je již zaregistrováno. Někdo vás s tímto jménem předběhl. Zvolte si jiné jméno.
Družstvo VAŠE JMÉNO bylo úspěšně zapsáno.
Registrace proběhla úspěšně.

Seznam zaregistrovaných soutěžících

Na této stránce je tabulka obsahující informace o všech zaregistrovaných hráčích. V prvním sloupci je počet získaných bodů. V druhém je název soutěžícího. Ve třetím sloupci je datum a čas poslední změny registračních údajů daného hráče. V posledním sloupci nazvaném "Podrobnější informace" je odkaz s názvem "INFO". Tento odkaz zobrazí podrobnější informace o soutěžícím.

Informace o soutěžícím

Na této stránce jsou podrobné informace o soutěžícím. Také jsou k dispozici výsledky, kterých soutěžící dosáhl. V prvním odstavci je umístěn slovní popis, který o sobě soutěžící zadal při registraci. Na stránce se nachází tabulky s informacemi o soutěžícím hráči. Je zde zobrazeno jméno, email a poslední změna údajů. Odkazy Změna údajů a Změna hesla slouží ke změně registračních údajů a změně hesla. Jestliže se hráč již pokusil poslat alespoň jedeno řešení úlohy, je na stránce umístěná tabulka "Statistika". V prvním sloupci je název úlohy. Jedná se o odkaz, který odkazuje na stránku se zadáním úlohy. V druhém sloupci je počet pokusů o řešení dané úlohy, které zaslal daný hráč. Jedná se rovněž o odkaz na stránku s odeslanými řešeními. Na této stránce budou zobrazeny pouze odeslaná řešení vybraného hráče pro danou úlohu. V posledním sloupci je výsledek pokusů o řešení. Údaj v posledním sloupci obsahuje informaci, zda se hráči podařilo úlohu vyřešit, nebo ne. V poslední řádku tabulky je celkový souhrn výsledků. Je zde uveden celkový počet odeslaných řešení. Jedná se rovněž o odkaz, který se odkazuje na stránku s odeslanými řešeními. Na této stránce jsou zobrazeny všechny doručené pokusy o řešení, které zaslal vybraný hráč.

Formulář pro změnu registračních informací

Stránka slouží ke změně údajů, které soutěžící zadal při registraci. Stránka je velice podobná stránce pro zaregistrování. Do kolonky heslo musíte zadat staré heslo. Pomocí něj budete identifikováni. Na této stránce není možné změnit heslo. Chcete-li změnit heslo, klikněte na tlačítko Změnit heslo. Zobrazí se při tom stránka pro změnu hesla. Tlačítko Poslat heslo odešle heslo na emailovou adresu, kterou soutěžící uvedl při registraci. Tlačítko Zapsat zarpíše nové údaje. Kliknutím na toto tlačítko se dostáváte na stránku přeregistrování uživatele.

Změna registračních údajů

Stránka slouží ke informování soutěžícího o provedené změně registračních údajů.

Hlášky

Bohužel název XXXX je již registrován. Zvolte prosím jiný název.
Chcete změnit název (jméno) soutěžícího, ale bohužel takový název (jméno) je již registrováno někým jiným. Musíte vybrat jiný název. Jméno soutěžícího v hlášce je odkaz, kterým se dostanete na stránku zobrazující informace o soutěžícím, který je již pod tímto jménem registrován.
Špatně zadané heslo. Žádný údaj nebyl změněn! Proveďte operaci znovu a zadejte správné heslo.
Při zadáváni hesla jste se pravděpodobně spletli. Musíte zadat vaše platné heslo, nikoliv nové.
Proběhla změna údajů u hráče XXXX. Heslo zůstalo nezměněno.
Změna proběhla úspěšně. Jméno soutěžícího je odkaz, který odkazuje na stránku zobrazující informace o soutěžícím. Můžete si tam hned ověřit, že informace jsou změněné.

Formulář pro změnu hesla

Stránka slouží ke změně hesla, pomocí kterého se soutěžící identifikuje v systému. V horní části obrazovky je uvedeno jméno soutěžícího, u kterého dojde ke změně hesla. Jedná se o odkaz, který se odkazuje na stránku s informacemi o soutěžícím. Soutěžící musí zadat nejprve staré heslo, aby bylo možné ověřit, že se jedná skutečně o daného soutěžícího. Poté musí zadat dvakrát stejně nové heslo. Délka nového hesla musí mít minimálně 5 a maximálně 15 znaků. Jestliže jste své staré heslo zapomněli, použijte tlačítko Poslat heslo. Heslo může být posláno jen 1 krát za 24 hodin. Chcete-li změnit heslo za nové, po vyplnění formuláře stiskněte tlačítko Změnit. Tím se dostanete na stránku Změna hesla.

Změna hesla

Tato stránka zobrazí výsledek pokusu o změnu hesla. Na této stránce může být zobrazeno:

Heslo hráče XXXX je změněno
Heslo bylo úspěšně změněno
Špatně zadané staré heslo pro hráče XXXX. Zkuste to znova.
Staré heslo, kterým byl hráč identifikován je špatné. Ke změně hesla musíte znát staré heslo. Jestliže jste heslo zapomněli, na stránce, pro změnu hesla můžete stisknout tlačítko Poslat heslo.

Seznam úloh

Stránka slouží k zobrazení všech soutěžních úloh. Všechny úlohy jsou zobrazeny v tabulce. V prvním sloupci je uveden název úlohy. Jedná se o odkaz na stránku s informacemi o dané úloze. V druhém sloupci je počet bodů, které za správné vyřešení úlohy soutěžící získá. Následuje sloupec s počtem pokusů o vyřešení úlohy. V tomto sloupci jsou započítány úspěšné i neúspěšné pokusy. Jedná se o odkaz, který se odkazuje na stránku se seznamem doručených řešení pro danou úlohu. Ve čtvrtém sloupci je uveden počet úspěšných řešení. V posledním sloupci je procentuálně zobrazená úspěšnost při řešení této úlohy. Pod tabulkou lze vybrat kritérium, podle kterého mají být úlohy v tabulce seřazeny. Samotné seřazení se provede pomocí tlačítka Seřadit.

Zadání příkladu

Na této stránce se nachází zadání konkrétní soutěžní úlohy se statistikou a s formulářem pro odevzdání řešení. Na stránce je kromě zadání úlohy také tabulka obsahující název úlohy a statistiky týkající se pokusů o vyřešení této úlohy. Zadání si dobře pročtěte. kromě zadání jsou uvedeny předpoklady. Předpoklady si přečtěte ještě pozorněji než zadání. Dobře si promyslete řešení. Nic, co není uvedeno v předpokladech není jisté. Nemůžete tedy počítat s ničím, co v předpokladech není uvedeno. Jestliže spouštíte své procedury v programu xKarel, po resetu je robot vždy v levém dolním rohu, otočen na sever a šachovnice je bez cihel. V soutěži není nikde řečeno, jaká bude na šachovnici situace před vyhodnocováním řešení. Můžete počítat pouze s tím, co je uvedeno v předpokladech. Není-li v předpokladech uvedeno jinak, je poloha robota, otočení robota, rozmístění cihel, maximální počet cihel na poli a velikost šachovnice libovolná. Vaše zdrojové texty musejí být v tomto smyslu obecné pro všechny možné situace. Můžete si být jistí, že zde bude mnoho chytáků.

Byl-li doručen alespoň jeden pokus o vyřešení této úlohy, je na stránce tabulka statistik. V tabulce je v prvním sloupci uvedeno jméno soutěžícího. Jedná se o odkaz na stránku s informacemi o daném soutěžícím. V druhém sloupci je počet pokusů o vyřešení úlohy. Jedná se o odkaz, který směřuje na stránku se seznamem odeslaných řešení daného hráče pro danou úlohu. V posledním sloupci je uvedeno, zda se soutěžícímu již podařilo vyřešit úlohu, nebo ne. V posledním řádku a prostředním sloupci je číslo udávající celkový počet pokusů o vyřešení úlohy. Jedná se o odkaz na stránku se seznamem všech doručených řešeních pro tuto úlohu.

Na stránce se nachází formulář pro odevzdání úlohy. Pomocí tohoto formuláře soutěžící posílá řešení na server, kde dojde k jejich vyhodnocení. Soutěžící může podle pravidel posílat libovolný počet špatných řešení úlohy. Jakmile jednou dojde k zaslání úspěšného řešení, nemůže se již soutěžící pokoušet o další vyřešení této úlohy. Ale samozřejmě můžou se o to pokusit jiní soutěžící. Každý soutěžící může úspěšně vyřešit úlohu jen 1x. Do 1. kolonky formuláře vepište své jméno. Dále musíte zadat přístupové heslo. Jen tak lze prokázat, že se za soutěžícího nevydává někdo jiný. Do kolonky Zdrojový text vepište zdrojový text řešící úlohu. Zdrojový text musí obsahovat proceduru start, která bude zavolána k vyřešení úlohy. Dále může obsahovat libovolný počet dalších procedur, které používáte. Řešení se pošle tlačítkem Poslat řešení. Stisknutím tohoto tlačítka dojde k automatickému vyhodnocení vašeho řešení. Výsledek bude zobrazen na stránce s výsledkem.

Vyhodnocení zaslaného řešení

Na této stránce je zobrazen výsledek pokusu o vyřešení příkladu. Možné hlášky při vyhodnocování řešení

Špatně zadané heslo. Soutěžící XXXX má jiné přístupové heslo. Zkuste to znovu. Řešení nebylo započítáno.
Při odevzdávání řešení bylo zadáno špatné heslo. K vyhodnocení řešení nedošlo. Příklad nebyl nikam započítán. Tento pokus o vyřešení se neprojeví v žádných statistikách ani v seznamu doručených řešení. Nepodařilo se prokázat, že se skutečně jedná o daného soutěžícího. Ve svém WWW prohlížeči použijte funkci "zpět" a vyplňte správně heslo.
Špatně zadané jméno soutěžícího. Použijte tlačítko "Zpět" ve vašem WWW prohlížeči a opravte jméno soutěžícího. Pokus o řešení nebyl započítán.
Při odevzdávání řešení bylo zadáno neexistující jméno soutěžícího. Patrně překlep. K vyhodnocení řešení nedošlo. Příklad nebyl nikam započítán. Tento pokus o vyřešení se neprojeví v žádných statistikách ani v seznamu doručených řešení.
Tuto úlohu už máte vyřešenou. Vyřešil jste ji XXXX. Řešení nebylo započítáno.
Tuto úlohu již máte vyřešenou. K vyhodnocení řešení nedošlo. Příklad neby nikam započítán. Tento pokus o vyřešení se neprojeví v žádných statistikách ani v seznamu doručených řešení. Vyberte si jinou úlohu. Tuto úlohu již nemůžete řešit.
Procedura XXX nemá definované tělo!
Ve vašem zdrojovém textu je zavolána procedura, která nemá definované tělo. Zdrojový text jazyka musí být česky. Je-li XXX název elementárního příkazu, pak není v českém jazyce.
Au, to bolí! Narazil jsem hlavou do zdi.
Ve vašem řešení je chyba. Karel narazil hlavou do zdi, když vykonával vámi zaslané řešení.
Lituji, nemohu postavit více cihel.
Ve vašem řešení je chyba. Karel nemůže postavit více cihel. Chyba nastala, když robot vykonával vámi zaslané řešení.
Nemohu vzít cihlu.
Ve vašem řešení je chyba. Karel při vykonávání příkazů z vašeho zaslaného řešení se snaží zvednou cihlu z pole, na kterém žádná cihla není.
Příliš mnoho elementárních povelů pro Karla!
Při vykonávání vašeho řešení dostal Karel příliš mnoho elementárních příkazů. Maximální počet elementárních příkazů, které může Karel vykonat je 5000.
Neznámá chyba při vytváření procedury.
Ve vašem zdrojovém textu je blíže neurčená syntaktická chyba.
Vnitřní chyba. Omlouváme se!
Za tuto chybu se omlouváme. Jedná se o chybu, za kterou nemůžete vy ale my. Něco se stalo ve vyhodnocovacím systému. Zkuste to za chvíli znovu.
Váš zdrojový text je větší než 100000 bytů.
Zdrojový text řešení, které posíláte k vyhodnocení nesmí být větší než 100000 bytů.
Ve vašem zdrojovém textu není procedura start.
Zdrojový text řešení musí obsahovat metodu start. Metoda start je vždy zavolána. Po dokončení metody start musí být splněn úkol.
Špatně Váš zdrojový text není přijat!
Po ukončení procedury start nebyl splněn požadovaný úkol.
OK Váš zdrojový text je přijat jako správné řešení úlohy!
V podstatě se nejedná o chybovou hlášku. Váše řešení je správné a bylo přijato. Můžete se věnovat dalším příkladům.
Příliš mnoho zavolaných procedur.
Při vykonávání vašeho řešení byla jedna procedura zavolána více než 1000 krát. To podle pravidel nelze.
Neočekávaný konec zdrojového textu procedury XXX
Ve vašem řešení je syntaktická chyba. Zkontrolujte, jestli procedura XXX má správně závorky { a }
Nemohu najít začátek bloku (znak \"{\" v
Ve vašem řešení je syntaktická chyba. Někde v proceduře XXX schází znak {
Nemohu najít konec bloku (znak \"}\" v XXX
Ve vašem řešení je syntaktická chyba. Někde v proceduře XXX schází znak }
Špatné použití klíčového slova NE v proceduře XXX
Ve vašem řešení je syntaktická chyba. V proceduře XXX je špatně použito klíčové slovo NE.
Špatné použití klíčového slova JINAK v proceduře XXX
Ve vašem řešení je syntaktická chyba. V proceduře XXX je špatně použito klíčové slovo JINAK.
Za klíčovým slovem DOKUD (resp. DOKUD NE) musí následovat podmínka v proceduře
Ve vašem řešení je syntaktická chyba. V proceduře XXX je špatně použito klíčové slovo DOKUD. Za DOKUD (resp. DOKUD NE) musí následovat jedna z podmínek JeSever, JeZeď, JeCihla.
Klíčové slovo nesmí být použito jako název procedury XXX
Ve vašem řešení je syntaktická chyba. Snažíte se použít jako název procedury název klíčového slova.

Zaslání hesla

Stránka zobrazí informaci o odeslání hesla soutěžícímu na jeho elektronickou adresu.

Dopis s heslem byl odeslán na adresu XXXXX.
Dopis byl úspěšně odeslán. Přečtěte si došlou poštu, ve které bude dopis s vaším heslem. Další žádost o heslo nebude vyřízena dříve než za 24 hodin.
Bohužel, nepodařilo se odeslat dopis s heslem na adresu XXXXX.
Z nějakých důvodů se nepodařilo odeslat dopis na danou adresu. Bohužel. Zkuste to za chvíli.
Vaše heslo nemůže být odesláno. O heslo lze požádat až 24 hodin po poslední žádosti o heslo. Vaše poslední žádost o heslo byla XXX.
Jen 1x za 24 hodin lze požádat o heslo.

Doručená řešení

Stránka slouží k zobrazení informací o doručených řešeních, které jsou započítávány ve statistikách. Podle toho, z kterého místa tuto stránku navštívíte, může nastat jedna z možností:

  • Jsou zobrazeny všechny pokusy o řešení.
  • Jsou zobrazeny pokusy o řešení dané úlohy.
  • Jsou zobrazeny pokusy daného hráče o řešení.
  • Jsou zobrazeny pokusy daného hráče o řešení dané úlohy.

Vždy jsou ale zobrazeny jen ty pokusy o řešení (úspěšné či neúspěšné), které jsou započítávány. Ostatní zobrazeny nejsou (nejsou ani archivovány). Proto například odeslané řešení u kterého je špatně zadáno heslo soutěžícího není započítáno a tudíž ani zobrazeno.

Na stránce je zobrazená tabulka obsahující pokusy o řešení. V prvním sloupci je datum a čas doručení. V druhém sloupci je název úlohy. Jedná se o odkaz, který se odkazuje na stránku se zadáním dané úlohy. V následujícím sloupci je jméno soutěžícího. Jedná se o odkaz, který se odkazuje na stránku s informacemi o soutěžícím. V posledním sloupci jsou výsledky jednotlivých pokusů o řešení.

Krok za krokem pro začínající

Předpokládám, že jste právě objevili tyto stránky a o soutěži nic nevíte. Jste na úvodní stránce a nevíte co dělat. V této kapitole Vás krok po kroku provedu registrací a vyřešením první úlohy.

Registrace

Nejprve se tedy musíte zaregistrovat. Klikněte na úvodní stránce na odkaz Registrace. Tím se dostanete na WWW stránku s registračním formulářem. Nyní musíte vyplnit informace. Uvědomte si, že vše co zde napíšete bude zveřejněno na Internetu. Proto zde nepište žádné osobní údaje. Nejprve zapište jméno, pod kterým budete v soutěži vystupovat. Může to být přezdívka nebo i třeba křestní jméno. Každý hráč musí mít jiné jméno. Jestliže jste kolektiv více hráčů, uveďte nějaký název charakterizující vaši skupinu. Například 6.B ZŠ Horní Kotěhulky nebo Rychlé šípy a podobně. Dále uveďte heslo, pomocí kterého budete identifikováni při odevzdávání řešení. Heslo by mělo mít alespoň 5 znaků. Uvědomte si, že každý kdo zná heslo, může odevzdávat pod jménem soutěžícího řešení úloh. U skupiny soutěžících by měl znát heslo každý člen týmu. U jednotlivce pouze jednotlivec. Heslo napište ještě jednou do kolonky níže. Heslo musí být stejné. Tím se zamezuje překlepům. Dále uveďte adresu elektronické pošty (e-mail). Jestliže někdy zapomenete heslo, bude vám posláno jen na tuto adresu. Na žádnou jinou. Zbývá už jen doplnit slovní charakteristiku soutěžícího. Zde můžete zadat něco o sobě, co chcete aby o vás ostatní soutěžící věděli. Opět nezapomeňte, že vše bude zveřejněno na Internetu. Zbývá stisknout tlačítko Zaregistrovat. Jestliže se po stisku tlačítka objevili nějaké komplikace podívejte se na kapitolu o Registrace. Jestliže vidíte stránku s nápisem "Družstvo vámi zadané jméno bylo úspěšně zapsáno." znamená to, že vše proběhlo bez problémů. Nyní se můžete podívat na seznam zaregistrovaných hráčů.

Seznam zaregistrovaných hráčů

Klikněte na odkaz Seznam zaregistrovaných soutěžících. Zde máte tabulku, ve které vidíte počet získaných bodů a jméno všech zaregistrovaných soutěžících. Podrobnější informace o každém soutěžícím můžete získat kliknutím na odkaz INFO.

Změna registračních údajů

Vyberte si sebe a klikněte na odkaz INFO. Zde vidíte informace o sobě. Protože nemáte vyřešenu žádnou úlohu, není zde tabulka informací o vyřešených úlohách a o neúspěšných pokusech. Nevíte-li jak rozumět údajům na této stránce podívejte se na kapitolu Informace o soutěžícím. Nyní jste si třeba uvědomili, že nějaký údaj není zadán správně. Chcete-li něco změnit (ne heslo), klikněte na odkaz Změna údajů. Zde můžete informace poopravit a kliknout na tlačítko Zapsat. Musíte ale zadat správné heslo. Každý, kdo zná heslo, může měnit informace o soutěžícím. Nikdo jiný ne. Chcete-li vědět více o této stránce, podívejte se na kapitolu Formulář pro změnu registračních údajů. Chcete-li změnit heslo, klikněte na tlačítko Změnit heslo. Objeví se vám stránka na které budete požádáni o zadání starého hesla a o napsání nového hesla dvakrát. Poté klikněte na tlačítko Změnit. Jestliže jste heslo zapomněli, klikněte na tlačítko Poslat heslo. Heslo vám bude doručeno poštou. Takové změny, či zasílání hesla můžete udělat kdykoliv v průběhu soutěže. Nyní se podíváme na seznam úloh.

Seznam úloh

Klikněte na odkaz Seznam soutěžních úloh. Na zobrazené stránce je tabulka s informacemi o všech soutěžních úlohách. Je zde zobrazen název úlohy, počet bodů za vyřešení úlohy, počet pokusů o vyřešení této úlohy a počet úspěšných pokusů o vyřešení úlohy. Posledním údajem je úspěšnost vyjádřena v procentech. Jestliže kliknete na číslo udávající počet pokusů o vyřešení, uvidíte kdo, kdy a s jakým výsledkem se pokusil vyřešit úlohu. Jestliže kliknete na název úlohy, dostanete se na stránku s konkrétním zadáním úlohy.

Vyřešení úlohy

Vyberte úlohu s názvem úvodní a klikněte na její název. Nyní se nacházíte na stránce se zadáním úlohy. Tato úloha spočívá v otočení robota na západ. Našim úkolem tedy je udělat proceduru s názvem start, která otočí robota na západ. Ve zdrojovém textu, který budete odevzdávat jako řešení musí být vždy jedna procedura s názvem start. Z této procedury můžete volat jiné procedury, které také musíte samozřejmě zapsat. Chcete-li více porozumět údajům na této stránce podívejte se na kapitolu zadání příkladu. Zamysleme se nad řešením. Někoho by asi napadlo, že řešení je jednoduché. Prostě zavoláme povel vlevobok. Co při tom předpokládáme? Předpokládáme, že robot je otočen před vykonáním procedury start na sever. Tak jak je otočen robot v programu při resetu. Můžeme to předpokládat? NE! Nemůžeme předpokládat nic, než to, co je uvedeno v předpokladech zadání. Předpoklady jsou pouze takové, že robot není otočen na západ. Znamená to, že může být otočen kamkoliv kromě západu, může stát kdekoliv, šachovnice může být libovolně veliká a mohou na ní být rozmístěny libovolně cihly. Dávejte si na podobné chytáky pozor! Je jich v této soutěži spousta. Nebýt takových chytáků, byla by soutěž velice jednoduchá. Správné řešení tedy je:

 
procedure start 
{ 
   #Nejprve otočíme Karla na sever. 
   dokud ne jeSever 
   { 
      vlevobok 
   } 
   vlevobok 
   #Nyní je Karel otočen na západ 
} 

Pojďme tedy odevzdat řešení. Musíte k tomu vyplnit formulář na této stránce. Do první kolonky napište jméno soutěžícího, který odevzdává řešení. Je to jméno, které jste uvedli při registraci. Do kolonky zdrojový text napište řešení. Řešení jsem již uvedl. Zkuste sem ale napsat jiné řešení. V mnohých případech bude totiž nutné mít více procedur než jen proceduru start. Upravíme naše řešení tak, aby mělo dvě procedury. Ukážeme si na tom, jak odevzdávat řešení s více procedurami. Do kolonky zdrojový text tedy napište:

 
procedure naSever 
{ 
   #Nejprve otočíme Karla na sever. 
   dokud ne jeSever 
   { 
      vlevobok 
   } 
} 
 
procedure start 
{ 
   naSever 
   vlevobok 
   #Nyní je Karel otočen na západ 
} 

Karel bude vždy volat proceduru start. Tím máme formulář vyplněný. Zbývá kliknout na tlačítko Poslat řešení. Podobným způsobem můžete pokračovat v řešení dalších úloh. Úlohy za 1 bod jsou velmi jednoduché. Pokud řešení přímo nenajdete v dodávané sbírce příkladů, určitě je bez problémů vyřešíte. Více bodové úlohy jsou poněkud náročnější.

Způsob bodování

Úlohy jsou různě bodovány. Lehké úlohy mají méně bodů než těžké úlohy. To, jak je která úloha lehká a těžká rozhodujeme my. Jedná se tedy o náš čistě subjektivní názor na složitost zadání. S tímto názorem samozřejmě nemusí každý souhlasit. Určitě zde najdete úlohy, které by jste ohodnotili jinak. Ať už více nebo méně body. Při určování počtu bodů za vyřešení úlohy se řídíme alespoň přibližně následujícími pravidly.

Bodové hodnocení Slovní popis
1 bod Lehká úloha nebo úloha která je vyřešená ve sbírce příkladů dodávaných s Karlem. Může se také jednat o úlohu, která je podobná úloze ze sbírky úloh dodávané s Karlem. Nestačí ale úlohu opsat ze sbírky. Musíte si přečíst předpoklady a dát si pozor na chytáky. Přece jen si musíte úlohu trochu promyslet.
2 body Lehká úloha. Oproti jednobodovým úlohám je nutné se trochu více zamyslet nad předpoklady.
5 bodů Středně těžká úloha. Většinou bude nutné požít rekurzi. Není to ale vždy podmínkou. K vyřešení úlohy je potřeba se nad problémem zamyslet.
10 bodů Těžká úloha. Pro začátečníka se čas potřebný k vyřešení úlohy může pohybovat řádově v hodinách čistého času. Hodně je potřeba dávat pozor na předpoklady. Některé chytáky mohou být velice zákeřné.
15 bodů Super těžká úloha.

Chybová hlášení

Chybová hlášení jsou popsána v kapitole Vyhodnocení zaslaného řešení.

Odpovědi na často kladené otázky

  1. O čem ta soutěž vlastně je? Soutěží se v řešení úloh v programovacím jazyce Karel. Program lze stáhnout z adresy http://xkarel.sourceforge.net/downloadsCZ.html.
  2. Co musím udělat, abych mohl soutěžit? Je potřeba se zaregistrovat. Registrace je zdarma pomocí registračního formuláře.
  3. Mohou se zaregistrovat pouze jednotlivci nebo i skupiny? Je možné zaregistrovat i skupinu více lidí jako jednoho soutěžícího. Jako soutěžící tím pádem může být třeba skupina kamarádů nebo i celá školní třída.
  4. Jsou v soutěži nějaké ceny? NE
  5. Co znamenají některé ty statistické údaje u hráčů nebo u úloh? Přečtěte si kapitolu "Stránky" kde se dozvíte více.
  6. Chtěl bych soutěžit, ale nějak jsem to nepochopil a nevím co mám dělat. Přečtěte si dobře tento dokument, zvláště kapitolu Krok za krokem.
  7. Po odevzdání řešení mi to napíše, že není nalezena procedura start. Co s tím? Procedura start musí být v každém odevzdaném řešení. Právě tato procedura bude zavolána. Po skončení procedury start musí být splněn zadaný úkol.
  8. Když odevzdám řešení, je tam pořád nějaká chyba. Jak je to možné? Podrobný popis chyb je v kapitole Chyby. Nezapomeňte, že můžete spoléhat jen na to, co je uvedeno v předpokladech. Jste si například jistí, že vaše řešení je použitelné na libovolné rozestavění cihel? Že robot může stát kdekoliv atd...?
  9. Jsme zaregistrován, ale zapomněl jsem heslo. Co mi zbývá? Nechte si zobrazit seznam všech soutěžících. Vyberte sebe a na stránce s informacemi o vás klikněte na odkaz "Změna hesla". Poté klikněte na tlačítko poslat heslo. Heslo vám bude doručeno elektronickou poštou. O heslo nemůžete požádat častěji než 1 krát za 24 hodin.
  10. Mám k programu nebo k této soutěži nějaké připomínky. Jak vám je mám sdělit? Byli by jsme vděční, kdyby jste nám neposílali elektronickou poštu. Své připomínky raději zapište do diskuze. Je totiž možné, že někdo měl podobnou připomínku dříve. Zbytečně by jsme museli odpovídat na stejnou připomínku dvakrát.
  11. Našel jsem chybu nebo měl připomínku, kterou jsem napsal do diskuze. Nic se nestalo. Proč? Až budeme mít čas, určitě se na Vaší připomínku nebo upozornění na chybu zaměříme. Vývoj programu i této soutěže jde velice pomalu. Děláme to ve svém volném čase a zadarmo. Vyřešení i banálního problému může trvat i celé měsíce.
  12. Karel (ať už program nebo tato soutěž) se mi zalíbil a rád bych pro Vás něco udělal. Jak mohu pomoci? Uvítali by jsme, kdyby nám někdo pomohl s
    • překladem Karla (hlavně dokumentace) do cizích jazyků. Do angličtiny jej překládáme sami. Protože se ale spíše věnujeme programování, jde nám to velmi pomalu. Jiné cizí jazyky neumíme.
    • programováním Karla. Zde by jsme uvítali, kdyby potenciální pomocník sám přišel s nápadem, co dodělat. Ideální by bylo, kdyby se jednalo o registrovaného GNU vývojáře na serveru http://sourceforge.net. Není to ale podmínkou. Samotný Karel je napsán v C++ s použitím knihovny FLTK. Tato soutěž je napsaná v PHP & MySQL & C++.
    • propagací. Je možné psát a publikovat články, recenze nebo kritiku (nejen pozitivní) o Karlovi.
    • distribucí. Licence Karla umožní komukoliv zdarma a legálně šířit program xKarel. Jste-li distributorem nějakého CD a zvažujete o distribuci Karla na vašem CD, raději nám napište a domluvíme se. Licence vás sice nenutí nás o tom informovat, ale my vám můžeme třeba říci, že v nejbližších dnech bude nová verze nebo nějakou podobnou informaci. Také by jsme rádi věděli, kde se Karel šíří. Určitě nebudeme nikomu šíření Karla zakazovat.
  13. Co za to budu mít, když vám pomůžu? NIC :-) Tak jako my.
  14. Jaké jsou cíle tohoto projektu? Chceme dostat Karla na CD distribuce operačního systému LINUX. Znamená to, že Karel by se jednoho dne distribuoval po celém světě.

Závěr

Tato soutěž má posloužit k dalšímu rozšíření programu xKarel. Byla vyvinuta jako vedlejší produkt při vývoji programu xKarel (robot Karel).