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;