Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Míny - Generujeme poľa min

Tento článok je súčasťou nákupný programovacích jazykov C #, Java a game maker pri tvorbe klasických Min (Minesweeper) pozri: -> Miny aneb nákupný programovacích jazykov C #, Java, GM

Teraz si vytvoríme pole dátového typu boolean o rozmeroch rovnakých ako má tabuľka a nastavíme náhodne, na ktorých súradniciach budú míny.

Generovanie min v C#

Cyklus, ktorý kontroluje počet vytvorených min a potom náhodne generuje súradnice a ak na nich nie je mína, potom ju tam vytvorí.

private bool[,] _minesArray;

// určí souřadnice min
private void generateMines()
{
    _minesArray = new bool[_xLength, _yLength];
    int i = 0;

    while (i < _countOfMines)
    {
        int x = rand.Next(_xLength);
        int y = rand.Next(_yLength);

        if (!_minesArray[x, y])
        {
            _minesArray[x, y] = true;
            i++;
        }
    }
}

Generovanie min v Jave

Cyklus je obdobný ako v C #.

public boolean[][] mines_array;

// určí souřadnice min
private void generateMinesArray()
{
    mines_array = new boolean[x_length][y_length];
    int i = 0;

    while (i < count_of_mines)
    {
        int x = rand.nextInt(x_length);
        int y = rand.nextInt(y_length);

        if (!mines_array[x][y])
        {
            mines_array[x][y] = true;
            i++;
        }
    }
}

Generovanie min v game maker

V GM použijeme náhodný výber inštancie, potom pristúpime k jej premenným a nastavíme mínu na true. Ak už mína je zvýšime počet opakovaní o jedna - tým pádom sa bude generovať dovtedy než bude vygenerovaný požadovaný počet min.

// nastavení min
for (mines_created = 0; mines_created < mines_count; mines_created += 1)
{
    // počítám, že v roomu není jiného objektu než min. Objekt kontroler z náhodného výběru vyřazuji > -1
    object = instance_id[ceil(random(instance_count - 1))];

    if (object.mine == true)
        mines_created -= 1;

    object.mine = true;
}

V objekte obj_button je premenná mine = false;

Pokračovanie> Práca s myšou


 

Článok pre vás napísal David Jančík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor je vášnivý programátor. Nezná slovo "nelze", nebojí se zkoušet nepoznané a pronikat do nových technologií.
Aktivity