Napíšte program, ktorý umožní malým deťom skladať zámok z
malých kartičiek:
plocha je zvisle rozdelená na dve časti (oddelené sú hrubou
čiarou): ľavá časť (šírky sir) obsahuje vzorových N kartičiek,
ktoré sa budú počas hry ťahať do druhej časti plochy;
kartičky (realizujte ako inštancie svojej triedy karticka)
sú tvorené bitmapami rovnakej veľkosti a načítate ich zo súborov z1.bmp,
z2.bmp, ... - biela farba v týchto bitmapách je priesvitná;
pri ťahaní kartičky z ľavej časti plochy sa najprv vyrobí
jej kópia a až tá sa potom ťahá do hracej časti plochy -- ťahanie kartičky
v hracej časti plochy nevyrába kópiu;
keď sa ťahaná kratička pustí mimo hracej plochy, tak zmizne
(vo vašom programe sa zruší príslušná inštancia zo zoznamu všetkých kartičiek
-- realizujte ho dynamickým poľom);
keď sa ťahaná kartička pustí v hracej ploche, tak "doskočí"
do najbližšieho políčka myslenej siete veľkosti kartičky -- zabezpečte,
aby sa na to isté miesto nedali položiť dve kartičky -- druhá ukladaná
odskočí na nejaké voľné miesto v tom istom stĺpci;
ťahanie kartičky zrealizujte tak, aby sme ju držali za to
miesto, kde sme na nej zatlačili tlačidlo myši;
Pri končení programu sa momentálne rozloženie kartičiek v
hracej ploche zapíše do súboru zamok.txt tak, že v každom
riadku je popísaná jedna kartička -- riadok a stĺpec myslenej siete a poradové
číslo kartičky v zozname vzorových kartičiek. Pri štarte programu, ak existuje
súbor zamok.txt, sa tento načíta a hneď sa vygenerujú príslušné
kartičky do hracej plochy.
Zadefinujte konštantu programu sir, napr. na 200,
ktorá vyjadruje šírku ľavej časti plochy -- v tejto časti na začiatku programu
vygenerujte N vzorových kartičiek na náhodné pozície.
Napíšte program, ktorý umožní hrať hru Jabĺčka:
Na strome je niekoľko červených jabĺčok a pod stromom
sa pohybuje vozík, do ktorého budeme zbierať tieto jabĺčka. Vozík sa pohybuje
samostatne konštantnou rýchlosťou buď zľava doprava alebo opačne (vždy
na kraji obrazovky zmení smer). Hrať budeme tak, že budeme myšou klikať
na niektoré jabĺčka a tieto začnú padať nadol (konštantnou rýchlosťou).
Ak ich pri ich páde zachytí vozík, tak sa budú voziť spolu s ním inak sa
zastavia naspodu obrazovky.
Jabĺčka aj vozík realizujte korytnačkami, pričom všetky
jabĺčka (triedy mojaKor) budú prvkami triedy velaKor. Jabĺčka
budú mať tvar červenej kružnice (teda napr. 12-uholník). Vygenerované budú
náhodne s y-ovou súradnicou >= 0. Korytnačka vozík bude mať tiež zmenený
tvar napr. na obdĺžnik šírky sir a bude sa nachádzať na spodu grafickej
plochy.
V programe použite konštanty na počet jabĺčok, ich minimálnu
a maximálnu rýchlosť padania a rýchlosť pohybu vozíka (rýchlosť je parametrom
metódy dopredu), šírku vozíka, napr.
const n=30; rjmin=4; rjmax=7; rv=3; sir=100;
Trieda mojaKor by mohla byť deklarovaná napr. takto (môžete
mierne zmeniť):
mojaKor = class(Kor) rych:integer; vel:integer; constructor Create; function Blizko(x,y:real):boolean; override; end;
Konštruktor Create vygeneruje náhodnú pozíciu, náhodnú
rýchlosť padania rych (z intervalu rjmin a rjmax),
tvar napr. červená kružnica veľkosti vel (veľkosť strany 12-uholníka
- náhodné číslo z nejakého intervalu). Metóda Blizko je predefinovaná,
tak aby sa umožnilo kliknúť čo najpresnejšie na tvar korytnačky.