Napíšte program, pomocou ktorého budeme riadiť robota v labyrinte:
v štvorcovej sieti labyrintu sa samostatne pohybuje robot
- v pravidelných časových intervaloch sa presúva na susedné voľné políčko,
prípadne najprv zmení smer a až potom sa presunie - robot vidí jedno políčko
pred sebou a vie nahmatať stenu buď pravou alebo ľavou rukou;
robot je naprogramovaný nasledovne: stále má vysunutú buď
pravú alebo ľavú ruku -- vždy sa snaží pridržiavať steny tou rukou, ktorú
má práve vysunutú, t.j. ak má na príslušnej strane stenu a pred sebou voľno,
spraví krok vpred, ak nemá na príslušnej strane stenu, tak sa do tohoto
smeru natočí a spraví krok vpred, ak má na príslušnej strane ale aj pred
sebou stenu, tak sa otočí do opačnej strany ako je vysunutá jeho ruka;
klávesom medzera môžeme robotovi prehadzovať aktívnu ruku;
v labyrinte sa na dlážke na niektorých políčkach nachádzajú
žlté kruhy - úlohou robota je vyzbierať všetky tieto kruhy (keď príde na
políčko s kruhom, tento sa vymaže a zníži sa počítadlo ešte zostávajúcich
kruhov);
labyrint je zadaný v textovom súbore robot.txt - tento
súbor obsahuje niekoľko rovnakodlhých riadkov znakov - každý znak popisuje
jedno políčko:
'x' - stena - políčko vyplňte modrou farbou;
'.' - voľné políčko - vyplňte šedou farbou;
'o' - políčko s kruhom - žltá kružnica na šedom políčku.
súbor je zadaný korektne;
robota znázornite jednou z ôsmich bitmáp: robot0p.bmp,
robot0l.bmp, ..., podľa toho, v akom smere je natočený a ktorú ruku
má vysunutú - robota reprezentujte objektom s konštruktorom a metódami
na vykreslenie do plochy a posunutie robota o jeden krok (v bitmapách je
biela farba priesvitná);
labyrint reprezentujte tabuľkovým komponentom StringGrid
s políčkami veľkosti 48x48.
Napíšte program, pomocou ktorého si zahráme hru chytanie
rybičiek:
v rybníku (modré pozadie) plávajú rôzne veľké rôzne zafarbené
ryby - čím väčšia, tým pláva rýchlejšie; tvar ryby vytvorte z dvoch rôzne
veľkých kosoštvorcov ktoré sú tesne vedľa seba;
rybky sa v náhodných intervaloch objavujú na náhodných pozíciách
a plávajú náhodným smerom - vždy vodorovne (stále vľavo alebo vpravo) --
na okrajoch obrazovky zmiznú a objavia sa na opačnom konci;
hráč chytá rybky pomocou udice - udicou je korytnačka s tvarom
háčika a dlhej (napr. 1000) čiary smerom nahor:
na začiatku hry je udica skrytá - po kliknutí niekde do plochy
sa na tomto mieste objaví udica (jej háčik) a čaká, kým sa k nej nepriblíži
nejaká ryba - každé ďalšie kliknutie presťahuje udicu;
ak sa na udicu chytí nejaká ryba (je blízko háčika),
táto sa prestane pohybovať s ostatnými rybami, ale spolu s udicou sa rýchlo
vytiahne z rybníka -- ak počas vyťahovania ryby hráč klikne myšou do plochy,
tak udica chytenú rybu pustí (táto znovu pláve s ostatnými) a čaká sa na
nejakú ďalšiu.
Ryby realizujte ako inštancie novej triedy
Ryba (odvodená
z Kor) -- táto bude mať okrem konštruktora (vytvorí "rybací" tvar
náhodnej farby) aj metódu pohyb, ktorá v danom smere pohne rybou zodpovedajúcou
rýchlosťou (veľké plávajú rýchlo, malé pomaly). Všetky ryby uložte v štruktúre
VelaKor.
Háčik je samostatná korytnačka (mimo VelaKor). Ryby pohybujte pomocou
časovača.