Ciele
- Naučiť sa vytvárať a používať vlastné balíky v jazyku Java.
- Naučiť sa používať refaktorizáciu Encapsulate Fields v prostredí NetBeans IDE.
- Vyskúšať si implementáciu objektových programov.
Úvod
-
V modeli sú uvedené metódy, ktoré nie sú uvedené v zdrojových kódoch.
Úlohou dnešného cvičenia bude upraviť zdrojové kódy tak aby zodpovedali modelu.
Postup
-
Pri implementácii použite refaktorizáciu
Encapsulate Fieldsv prostredí NetBeans IDE. Pomocou tejto refaktorizácie je možné pre zvolenú premennú objektu vygenerovať set respektíve get metódu - zapúzdrenenie.Úloha: Pridajte metódu intZvoľte členskú premennúgetValue()do triedyClue.value(nastavte kurzor na deklaráciu premennej value v triedeClue), stlačte pravé tlačidlo myši a z kontextového menu zvoľte „Refactor > Encapsulate Fields”. Uistite sa, že je zvolené „Create Getter” a pokračujte pomocou tlačidla „Next”.Úloha: Pridajte metódyint getRowCount(),int getColumnCount(),int getMineCount()aGameState getState()do triedyFieldpoužitím refaktorizácieEncapsulate Fields.Úloha: Pridajte metóduTile getTile(int row, int column)do triedyField, ktorá vráti dlaždicu podľa zadaného riadku a stĺpca. Riadky a stĺpce sú číslované od0.Úloha: Implementujte metóduvoid markTile(int row, int column)v triedeField. Metóda slúži na označenie/odznačenie dlaždice špecifikovanej riadkom a stĺpcom. V prípade, že je dlaždica neodkrytá (CLOSED) bude jej stav zmenený na označená (MARKED). Ak je dlaždica označená (MARKED) bude jej stav zmenený na neodkrytá (CLOSED). Riadky a stĺpce sú číslované od0. -
Ďalší krok pri implementácii hry Minesweeper je náhodné vygenerovanie obsahu herného poľa.Úloha: Implementujte metódu
void generate()v triedeFieldtak, aby v hernom poli tiles náhodne rozložila míny (Mine) a doplnila pomocné polia (Clue), pričom počet mín, ktoré majú byť rozložené je daný premennoumineCount.Poznámka: Náhodné vygenerovanie hracieho poľa rozdeľte do dvoch fáz- náhodné uloženie mín do poľa - metóda
void generateMines() - doplnenie pomocných polí na miesta, ktoré neobsahujú mínu - metóda
void fillWithClues()
private void generate() { generateMines(); fillWithClues(); }Poznámka: Pre náhodné generovanie čísel vytvorte objekt triedyjava.util.Random(použite metódu objektuint nextInt(int n)).Poznámka: Na náhodne zvolené súradnice v hernom poli vložte dlaždicu typuMineak pole na daných súradniciach už neobsahuje mínu (tiles[row][column] == null). Postup opakujte pokiaľ nebude uložený požadovaný počet mín. Po realizácii tejto úlohy bude hracia plocha obsahovať iba dlaždice typu mína.Poznámka: Doplňte herné pole dlaždicami typuClue(pomoc pri vyhľadávaní). Pre tento typ dlaždice je potrebné nastaviť hodnotu identifikujúcu počet dlaždíc s mínami v jej priamom susedstve.Poznámka: Prejdite v cykle celé hracie pole. Pre každú neobsadenú pozíciu (platítiles[row][column] == null) zistite počet susedných mín pomocou už implementovanej metódyint countAdjacentMines(int row, int column). - náhodné uloženie mín do poľa - metóda
-
Okomentujte všetky doposiaľ vytvorené metódy.
-
Vymažte projekt z disku a zrušte všetky vami vytvorené nastavenia v prostredí NetBeans!




void markTile(int row, int column)sa inšpirujte metódouvoid openTile(int row, int column).