2. Skúška z programovania pre 1i, 1MI a 1FI
11.1.1999 po

 
1.

testovací textový súbor

Naprogramujte hru KARTIČKY:
Na hracej ploche sú rozmiestnené dvojice kartičiek odlišujúcich sa farbou a obrázkom (znakom). Kartičky sa môžu prekrývať. Úlohou hráča je zozbierať dvojice rovnakých kartičiek a vyprázdniť tým hraciu plochu. Kartičky sú zobrazené ako farebné obdĺžniky výšky 2*VYS riadkov a šírky 2*SIR stĺpcov obrazovky. Sú orámikované znakom #176 a vnútro je vyplnené príslušným znakom charakterizujúcim kartičku.
Parametre kartičiek načítajte zo súboru karticky.txt, ktorý má nasledovnú štruktúru:
  • prvý riadok obsahuje dva celočíselné parametre VYS a SIR
  • nasledujúce riadky obsahujú štvorice (každý riadok jednu) popisujúce jednotlivé kartičky:
    • prvé dve čísla udávajú súradnice ľavého horného rohu kartičky v poradí riadok, stĺpec (v mierke VYS a SIR)
    • nasleduje znak a číslo farby kartičky 
Program načíta súbor, zobrazí kartičky na obrazovku a umožní hráčovi klikaním ľavým tlačidlom myši označovať dvojice kartičiek. Prvým kliknutím na kartičku sa táto označí - rámik sa vykreslí znakom #219 farbou kartičky (druhým kliknutím na označenú kartičku sa táto odznačí). Ak už je nejaká kartička označená a hráč klikne na inú kartičku s rovnakou farbou a znakom, obe kartičky zmiznú z hracej plochy. Pri kliknutí mimo kartičiek alebo na kartičku, ktorá sa farbou alebo znakom nezhoduje s označenou, program zapípa. Kliknúť sa môže len na kartičku, ktorá nie je prekrytá žiadnou inou.
Po vyprázdnení hracej plochy program pogratuluje hráčovi.

Kartičky v programe reprezentujte objektami. Definujte metódy na inicializáciu, vykreslenie do video-pamäti, na zistenie, či sa na ňu kliklo (resp. prekrývanie s inou kartičkou).
Program by sa mal dať v ľubovoľnom okamihu prerušiť klávesom ESC. 
Nepoužívajte GotoXY.


 
 
2. Napíšte program, ktorý zobrazí na obrazovke n korytnačiek (n<11) s rôznymi obrysmi a umožní s nimi interaktívne pracovať pomocou myši. Korytnačky možno ťahať so stlačeným ľavým tlačidlom a pravým tlačidlom otáčať smerom k myši. Vždy, keď sa korytnačka ťahaním položí na nové miesto, zanechá na tomto mieste otlačok svojho obrysu.
Obrysy korytnačiek sú zadané v súbore tvary.txt ako postupnosť čísel (strieda sa otočenie vpravo a presun dopredu). V každom riadku tohto súboru je definovaný obrys pre jednu korytnačku.
Program na začiatku vygeneruje príslušný počet korytnačiek (podľa počtu riadkov v súbore) na náhodných pozíciách otočené na sever. Každá korytnačka dostáva príslušný tvar.

Poznámka 1: Nakoľko metóda Blizko rozpoznáva len malé okolie okolo momentálnej pozície korytnačky a samotné tvary môžu byť veľké, myš bude reagovať len pri kliknutí v blízkosti pozície korytnačky (tvary sú v súbore zadané tak, aby bolo jasné, kde je táto pozícia)

Poznámka 2: Obrys korytnačky, ktorý sa má otlačiť po ťahaní, vykresľuje pomocná korytnačka - táto je skrytá, najprv sa nastaví na pozíciu korytnačky, nastaví si jej smer a zinterpretuje jej obrys (ten zrejme musí byť niekde uložený, aby bol prístupný pre túto pomocnú korytnačku).