Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Uses
- // generateMinesweeper(row, column, mines);
- // generateMinesweeper(10, 10, 10);
- function generateMinesweeper(rows = 5, columns = 5, minesNum = 5) {
- var arr = new Array();
- var min = 1;
- var max = rows * columns;
- // Generate Array
- for (var i = 0; i < rows; i++) {
- arr[i] = new Array()
- for (var j = 0; j < columns; j++) {
- arr[i][j] = 0;
- }
- }
- // Add Mines
- for (var i = 0; i <= minesNum; i++) {
- var x = Math.floor(Math.random() * rows);
- var y = Math.floor(Math.random() * columns);
- if (arr[x][y] == -1) {
- i--;
- continue;
- }
- arr[x][y] = -1;
- }
- // Check Neighbours
- for (var i = 0; i < rows; i++) {
- for (var j = 0; j < columns; j++) {
- if (arr[i][j] == -1) {
- continue; // Don't do if mines
- }
- if ((i - 1) >= 0 && arr[i - 1][j].holds == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (j - 1 >= 0 && arr[i][j - 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (i + 1 < rows && arr[i + 1][j] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (j + 1 <= columns && arr[i][j + 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (i + 1 < rows && j + 1 < columns && arr[i + 1][j + 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (i - 1 >= 0 && j - 1 >= 0 && arr[i - 1][j - 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (i - 1 >= 0 && j + 1 < rows && arr[i - 1][j + 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- if (i + 1 < rows && j - 1 >= 0 && arr[i + 1][j - 1] == -1) {
- arr[i][j] = arr[i][j] + 1;
- }
- }
- }
- // To Discord Spoiled Emoji
- for (var i = 0; i < rows; i++) {
- for (var j = 0; j < columns; j++) {
- arr[i][j] = "zero,one,two,three,four,five,six,seven,eight".split(',').map(a => `||:${a}:||`)[arr[i][j]] || '||:bomb:||';
- }
- arr[i] = arr[i].join('');
- }
- return arr.join('\n');
- }
Advertisement
Add Comment
Please, Sign In to add comment