Herné objekty
| Objekt | Popis | Vzhľad |
|---|---|---|
| Mína | Ak hráč klikne na mínu, hra končí. | ![]() |
| Vlajka | Označuje miesto kde hráč predpokladá mínu. | ![]() |
| Výhra | Zobrazí sa keď hráč odhalí všetky bezpečné políčka. | ![]() |
| Prehra | Zobrazí sa keď hráč klikne na mínu. | ![]() |
| Turtle | Korytnačka je v tejto implementácii symbolickým hlavným hrdinom a maskotom hry, ktorý sprevádza hráča počas hrania. | ![]() |
Ukážka kódu
Pri implementácii hry som použil viacero metód. Medzi najdôležitejšie patria generovanie mín na hracej ploche a rekurzívne otváranie políčok bez mín.
Generovanie mín
Nasledujúca metóda náhodne umiestni 10 mín na hraciu plochu. Metóda dostane súradnice prvého kliknutia, aby sa zabezpečilo, že hráč na mínu neklikne hneď na začiatku.
private void SpawnMiny(int riadok, int stlpec) {
for (int i = 0; i < 10; i++) {
int randomX = (int)(Math.random() * 9);
int randomY = (int)(Math.random() * 9);
if(!pole[randomX][randomY]){
pole[randomX][randomY] = true;
} else {
i--;
}
}
}
Rekurzívne otváranie políčok
Keď hráč klikne na políčko bez mín v okolí, namiesto odhalenia jediného políčka sa automaticky otvoria aj všetky susedné bezpečné políčka. Toto správanie zabezpečuje nasledujúca metóda, ktorá volá samu seba pre každého suseda – ide o techniku nazývanú rekurzia.
public void OtvaranieBlocks(int riadok, int stlpec) {
if(riadok < 0 || riadok >= sirkaPola) return;
if(stlpec < 0 || stlpec >= vyskaPola) return;
int index = riadok * vyskaPola + stlpec;
if(blocks[index] == null) return;
this.remove(blocks[index]);
blocks[index] = null;
int pocetMin = PocetMinOkolo(riadok, stlpec);
if(pocetMin > 0){
return;
}
OtvaranieBlocks(riadok-1, stlpec);
OtvaranieBlocks(riadok+1, stlpec);
OtvaranieBlocks(riadok, stlpec-1);
OtvaranieBlocks(riadok, stlpec+1);
}
Gameplay video
Video ukážky hrania hry Minesweeper.
Stiahnutie
Hra je dostupná pre operačný systém Windows.
⬇ Stiahnuť hru (MineSweeper.exe)



