Karel and the Beepers
Ciele
- Vytvárať funkcie, ktoré vracajú hodnoty.
Úvod
Na tomto cvičení bude vašou úlohou implementovať podporu značiek. Karel bude obsahovať batoh, do ktorého ich môže vkladať a na každej pozícii sveta bude možné umiestniť 0 a viac značiek. Okrem toho Karla vybavíme vhodnými senzormi, ktoré bude vedieť použiť na prácu so značkami.
Postup
Krok č. 1
Úloha 1.1:
Úloha 1.2:
Úloha 1.3:
Úloha 1.4:
CORNER FACING BEEP-BAG (0, 0) North 10alebo takto:
POSITION = [1,2] - East BEEP-BAG = 10
Úloha 1.5:
Krok č. 2
Úloha 2.1:
Úloha 2.2:
Úloha 2.3:
CORNER FACING BEEP-BAG BEEP-CORNER (0, 4) North 10 0alebo takto:
POSITION = [1,2]:0 - East BEEP-BAG = 10
Úloha 2.4:
Úloha 2.5:
Úloha 2.6:
char* fullOfStars = "******|******|******|******|>*****";alebo verziu sveta s podporou Run length encoding:
char* fullOfStars = "6*|6*|6*|6*|>5*";
CORNER FACING BEEP-BAG BEEP-CORNER (0, 0) East 0 0 ****** ****** ****** ****** >*****
CORNER FACING BEEP-BAG BEEP-CORNER (5, 4) North 0 1 *****^ ****** ****** ****** .*****
Krok č. 3
Úloha 3.1:
Úloha 3.2:
Úloha 3.3:


Doplňujúce úlohy
-
Vytvorte funkciu transformation(), ktorá prevedie formát sveta pre robota Karla, ktorý bol používaný v knižnici karel v prvých cvičeniach, na formát, ktorý je používaný teraz. Funkcia nebude mať žiadny parameter, ale bude vracať reťazec znakov (char*), ktorý bude reprezentovať výslednú prevedenú mapu.
V prípade načítavania značiek kvôli novému formátu stačí rozpoznať, či sa na danej pozícii značka nachádza alebo nie. Ak sa teda v pôvodnej mape bude nachádzať na pozícii 10 značiek, do novej mapy túto informáciu prevediete len s hodnotou 1.
Načítanie sveta vo formáte použitom v knižnici karel vykonajte ručne. To znamená, že svet budete načítavať priamo zo vstupu postupným zadávaním jednotlivých hodnôt.
Poznámka: V operačnom systéme Linux môžete miesto ručného zadávania hodnôt s výhodou použiť presmerovanie vstupu, napr.:Funkciu volajte z funkcie turnOn() vtedy, ak parameter funkcie turnOn() bude obsahovať hodnotu NULL. Príklad vstupu:$ ./a.out < empty.kw
5 4 1 1 E 10 B 2 3 10 W 3 3
Vysvetlenie: Svet má rozmer 5x4, Karel sa na začiatku nachádza na pozícii [1,1], je otočený na východ, má v batohu 10 značiek, na pozícii [2,3] sa nachádza 10 značiek a na pozícii [3,3] je stena. -
Pridajte do Vášho riešenia komentáre a vygenerujte k nemu dokumentáciu
vo formáte html prostredníctvom nástroja Doxygen.
Poznámka: Základné informácie k nástroju Doxygen nájdete na jeho webovej stránke, v pokynoch k vypracovaniu zadania č. 1 a v referenčnej príručke na stránkach predmetu Programovanie.
Ďalšie zdroje
- Rudolf Pecinovský: Základy algoritmizace
- Pavel Herout: Učebnice jazyka C (1. díl) - 9.2