Ciele
- Precvičiť vytváranie objektových programov v jazyku Java.
- Pochopiť význam rozhraní v objektovom programovaní.
- Naučiť sa vytvárať rozhrania v jazyku Java.
- Implementovať generovanie hracej plochy pre hru Minesweeper a zobrazenie herného poľa.
Úvod
-
Jednou z požiadaviek na hru je možnosť používateľa vybrať si rozhranie pre hru (konzolové alebo grafické
rozhranie Swing). Práve z tohto dôvodu je nutné zabezpečiť nezávislosť implementácie hernej logiky aplikácie od
implementácie používateľského rozhrania. Dôvodom používania rozhraní je práve zabezpečenie implementačnej
nezávislosti jednotlivých častí systému. Pre vytvorenie rozhrania, ktoré určí predpis pre pripojenie rôznych
typov používateľského rozhrania použite postup uvedený nižšie.
Postup
-
Úloha: V balíku minesweeper definujte rozhranieToto rozhranie vygenerujte z existujúceho zdrojového kódu triedy ConsoleUI nasledujúcim postupom.
UserInterfaceako predpis, ktorý musia spĺňať používateľské rozhrania pre aplikáciu Minesweeper.-
Nastavte sa do zdrojového súboru triedy
ConsoleUIpriamo na meno tejto triedy. - Stlačte pravé tlačidlo myši a z kontextového menu nad zdrojovým kódom zvoľte „Refactor > Extract Interface…”.
-
Do textového poľa zapíšte názov rozhrania
UserInterface. -
Zvoľte metódy
newGameStartedaupdate, ktoré majú byť zahrnuté vo vytváranom rozhraní a pokračujte ďalej. -
Presuňte vytvorené rozhranie
UserInterfacedo balíkaminesweeperpoužitím Drag&Drop v stromovej štruktúre projektu (záložka „Projects”). -
V triede
Minesweeperzmente typ členskej premennejuserInterfacezConsoleUInaUserInterface.
-
Nastavte sa do zdrojového súboru triedy
-
V tomto kroku zobrazíme herné pole na štandardný výstup. Na zobrazovanie hracieho poľa na štandardný výstup sú kladené nasledujúce požiadavky:
- Riadky sú označované veľkými písmenami zoradenými podľa abecedy (A, B, ..., I).
- Stĺpce sú označované číslicami (0, 1, ... , 8).
-
Pre vykreslenie odkrytej dlaždice (
OPEN) typu mína (Mine) sa používa znakX. -
Pre vykreslenie dlaždice v stave (
OPEN) typu pomoc pri hľadaní (Clue) sa používa číslo reprezentujúce hodnotu dlaždice. -
Pre vykreslenie označenej dlaždice (
MARKED) sa používa znakM. -
Pre vykreslenie neoznačenej dlaždice (
CLOSED) sa používa znak-.
Úloha: Implementujte metóduPre zobrazenie formátovaného výstupu (napríklad pri zobrazení označenia riadkov) použite metóduvoid update()v triedeConsoleUI, ktorá zabezpečí vykreslenie herného poľa.System.out.printf(...). -
Pri každom odkrytí herného poľa používateľom sa testuje možnosť ukončenia hry (úspešne alebo neúspešne).Úloha: Implementujte metóduHra je úspešne ukončená ak platí počet všetkých dlaždíc - počet odokrytých dlaždíc = počet mín. Z uvedeného vyplýva, že hra bude ukončená vtedy, ak budú odokryté všetky dlaždice bez mín. Pre určenie počtu odkrytých dlaždíc definujte súkromnú metódu
boolean isSolved()definovanú v triedeField, ktorá určuje úspešné odkrytie hracieho poľa.int getNumberOf(Tile.State state), ktorá vráti počet dlaždíc v danom stave. -
Vymažte projekt z disku a zrušte všetky vami vytvorené nastavenia v prostredí NetBeans!




