Skúška - 6
2.2.2009
časový limit: 2.5 hod
http://dai.fmph.uniba.sk/courses/JAVA/Skusky2008/Eurace.html
Naprogramujte hru Mince/Eurace. Hru hrajú
dvaja hráči na štvorcovej hracej ploche NxN, kde je rozmiestnených
N2 mincí s rôznymi hodnotami (hodnoty mincí sú náhodne
vygenerované, možné hodnoty sú 1, 2, 5, 10, 20 a 50 centov, N je voliteľný
parameter programu). Z každej mince vychádzajú štryri pevné drôtiky, ktorými
je uchytená o susedné mince, alebo o okraj hracej plochy. Jeden ťah hráča
spočíva z "precvaknutia" jedného z drôtikov. Ak sa tým hráčovi podarilo
uvoľniť jednu alebo viacero mincí, vyhráva všetky uvoľnené (vycvaknuté)
mince. Minca nie je voľná, ak je aspoň jedným drôtikom spojená s mincou,
ktorá nie je voľná. Taktiež nie je voľná minca, ak je drôtikom spojená s
okrajom. Hráči sa striedajú v ťahoch. Hra končí, keď na ihrisku neostali
žiadne mince. Mince najdete tu: obrázky mincí.
Úlohy:
- Vykreslite hraciu plochu. N je voliteľná konštanta
programu (predpokladajte, že 3<=N<=6) [6
bodov]. Naprogramujte mriežku škálovatelnú od rozmeru okna
(štvorcová mriežka sa rozťahuje podľa veľkosti okna, v ktorom sa
nachádza, NIE KONŠTANTA V PROGRAME) [2 body].
- Umožnite hráčom myšou precvakávať drôtiky, program vždy zobrazuje, ktoré
drôtiky ešte zostávajú a ktoré sú už precvaknuté [6
bodov]. Hráči sa musia striedať, informujte o tom, kto je na
ťahu. [1 bod].
- Ak niektorý hráč vycvakol jednu alebo viacero mincí, pripočítajte ich
hodnotu k jeho zisku [6 bodov] a ďalej zobrazujte len
zostávajúce mince a drôtiky [2 body]. Program zobrazuje
aktuálny zisk oboch hráčov [1 bod].
- V ľubovoľnom momente môžete uložiť konfiguráciu hry do hráčom zvoleného
súboru spolu s informáciou, kto je na ťahu. Tento súbor musíte vediet
načítať a pokračovať v hre. Predpokladá sa teda, že hráč uvidí FileSave
dialog a FileOpen dialog [6 bodov].