1.
|
Napíšte program, ktorý umožní zahrať sa s
robotom Karlom:
-
robot Karel sa pohybuje v štvorcovej sieti rozmerov 6 riadkov
po 8 stĺpcov, pričom rozmery políčka na obrazovke sú 3x5 a medzi políčkami
je jeden znak s kódom #176;
-
robot je vždy natočený v jednom zo smerov (sever, východ,
juh, západ) a zobrazený jedným zo znakov ('^','>','v','<')žltou farbou;
-
robot sa riadi nasledujúcimi klávesmi:
-
šípka hore, resp. dole – robot vykoná jeden krok dopredu,
resp. vzad v momentálnom smere, ak sa nedá, program pípne;
-
šípka vľavo, resp. vpravo – robot sa otočí vľavo, resp. vpravo
o 90 stupňov;
-
číslica '0' .. '7' – zafarbí políčko pod robotom príslušnou
farbou (0 je čierna, 1 modrá, ...);
-
Ctrl + písmeno – naštartovanie definovania príslušného makra,
t.j. od tohoto momentu sa zapamätávajú všetky klávesnicové príkazy do reťazca
a zároveň sa vykonávajú; definovanie makra sa ukončí opätovným stlačením
Ctrl + ľubovoľné písmeno; počas definovania makra je v pravom hornom rohu
vypísaná správa MAKRO a príslušné písmeno;
-
'A'..'Z' – spustí príslušné makro; ak sa počas definície
makra vyvolá nejaké makro, tak toto sa naozaj vykoná a do definície makra
sa zapíšu len samotné príkazy makra;
-
ESC – uloží všetky informácie o štvorcovej sieti, Karlovi
a definovaných makrách do súboru a program skončí.
Makro je vnútorne kódované ako znakový reťazec (do 255 znakov),
v ktorom šípky sú zapísané malými písmenami 'l','p','d','z' (pre vlavo,
vpravo, dopredu a vzad) a zafarbovanie políčka príslušnou cifrou.
Program pri štarte načíta súbor karel.txt tejto
štruktúry:
-
prvých 6 riadkov obsahuje po 8 cifier 0..7, ktoré reprezentujú
farby príslušných políčok štvorcovej siete;
-
v ďalšom riadku nasleduje pozícia a natočenie robota: riadok,
stĺpec, smer (0=sever, 1=východ, 2=juh, 3=západ);
-
až do konca súboru nasledujú definície makier vo formáte
písmeno=definícia makra.
Políčko štvorcovej siete aj robota reprezentujte objektami
s metódami na inicializáciu, vykreslenie a pod.
Nepoužívajte GotoXY. |