3. Skúška z programovania pre 1i, 1MI a 1FI
12.1.1999 do

 
1. Naprogramujte hru Preskakovaná:
  • hracia plocha je šachovnica NxM so šedými a žltými políčkami a hrá sa len na žltých políčkach;
  • dvaja hráči majú po M hracích kameňoch, ktoré sú v počiatočných pozíciách: prvý hráč v dolných dvoch radoch a druhý v horných dvoch radoch;
  • hráči striedavo ťahajú niektorým zo svojich kameňov a to vždy uhlopriečne len po povolených políčkach na voľné políčko;
  • jeden ťah znamená buď presun na susedné políčko alebo preskočenie (nie vyhodenie) susedného políčka, ale len ak je voľné.
Políčko hracej dosky má rozmer VYSxSIR znakov obrazovky. Hracie kamene prvého hráča sú červené, súpera modré a sú zobrazené obdĺžnikom (VYS-2)x(SIR-2) v strede políčka. Hra sa ovláda pomocou klikania myšou:
  • farba hráča, ktorý je na ťahu, je zobrazená farebným obdĺžnikom v pravom hornom rohu obrazovky
  • hráč, ktorý je na ťahu, najprv klikne na svoj kameň (tento sa označí napr. vybodkovaním) a potom klikne na cieľové políčko
  • ak je ťah v poriadku tak sa vykoná, inak sa pípne a čaká buď na zadanie správneho políčka alebo na odznačenie kameňa.
M, N, VYS a SIR sú konštanty programu, M,N > 4, VYS > 3, SIR > 4, napr.
const SIR=6; VYS=4; M=6; N=7;
Hracie políčko reprezentujte objektom s metódami na inicializáciu, vykreslenie a zistenie, či sa naň kliklo.

Program by sa mal dať v ľubovoľnom okamihu prerušiť klávesom ESC. 
Nepoužívajte GotoXY.


 
 
2. Napíšte program, ktorý bude simulovať pohyb "električiek" po zacyklenej dráhe:
  • pomocou ťahania myši so zatlačeným ľavým tlačidlom sa začne vytvárať električková trať – čiara, začínajúca v prvom bode kliknutia, ktorá je ďalej stále spojitá, aj keď pustíme tlačidlo myši a zatlačíme na inom mieste obrazovky (program si pritom zapamätáva v poli súradnice tejto dráhy a počíta si aj jej dĺžku);
  • ak má dráha dĺžku aspoň D1 (D1 je konštanta programu, napr. D1=1000) v počiatku dráhy sa "narodí" korytnačka = električka a začne sa pomaly (krokom 1) pohybovať po dráhe
  • ak električka prejde dráhu aspoň D2 (D2 je konštanta programu, napr. D2=300), opäť sa v počiatočnom bode dráhy "narodí" nová električka a tiež sa začne pomaly hýbať po dráhe
  • takto sa na počiatku dráhy vždy "narodí" nová električka, ak doteraz posledná prešla dráhu dĺžky aspoň D2
  • ak prvá korytnačka (električka) príde na momentálny koniec dráhy, tak zastane a zastanú aj všetky ostatné električky – ak potom dráhu predĺžime, opäť sa všetky pohnú
  • dráhu môžeme zacykliť, ak je narodená aspoň jedna električka a momentálny koncový bod dráhy je bližšie k počiatočnému bodu dráhy ako 10 – od tohoto momentu zmizne kurzor myši, dráha sa už ďalej ťahať nedá a tiež sa prestanú rodiť nové električky (existujúce stále jazdia dokola)
Električky definujte pomocou triedy VelaKor, pričom každá jedna sa nesmie pohybovať rýchlejšie (väčším krokom) ako 1 a vždy je natočená k nasledujúcemu bodu dráhy (korytnačky sú ukázané).
Môžete predpokladať, že dráha sa nebude skladať z viac ako 1000 bodov.