Nurutomo2

Discord Spoiler Minesweeper Generator

Feb 2nd, 2019
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Uses
  2. // generateMinesweeper(row, column, mines);
  3. // generateMinesweeper(10, 10, 10);
  4. function generateMinesweeper(rows = 5, columns = 5, minesNum = 5) {
  5.     var arr = new Array();
  6.     var min = 1;
  7.     var max = rows * columns;
  8.  
  9.     // Generate Array
  10.     for (var i = 0; i < rows; i++) {
  11.         arr[i] = new Array()
  12.         for (var j = 0; j < columns; j++) {
  13.             arr[i][j] = 0;
  14.         }
  15.     }
  16.  
  17.     // Add Mines
  18.     for (var i = 0; i <= minesNum; i++) {
  19.         var x = Math.floor(Math.random() * rows);
  20.         var y = Math.floor(Math.random() * columns);
  21.         if (arr[x][y] == -1) {
  22.             i--;
  23.             continue;
  24.         }
  25.         arr[x][y] = -1;
  26.     }
  27.  
  28.     // Check Neighbours
  29.     for (var i = 0; i < rows; i++) {
  30.         for (var j = 0; j < columns; j++) {
  31.             if (arr[i][j] == -1) {
  32.                 continue; // Don't do if mines
  33.             }
  34.  
  35.             if ((i - 1) >= 0 && arr[i - 1][j].holds == -1) {
  36.                 arr[i][j] = arr[i][j] + 1;
  37.             }
  38.  
  39.             if (j - 1 >= 0 && arr[i][j - 1] == -1) {
  40.                 arr[i][j] = arr[i][j] + 1;
  41.             }
  42.             if (i + 1 < rows && arr[i + 1][j] == -1) {
  43.                 arr[i][j] = arr[i][j] + 1;
  44.             }
  45.             if (j + 1 <= columns && arr[i][j + 1] == -1) {
  46.                 arr[i][j] = arr[i][j] + 1;
  47.             }
  48.             if (i + 1 < rows && j + 1 < columns && arr[i + 1][j + 1] == -1) {
  49.                 arr[i][j] = arr[i][j] + 1;
  50.             }
  51.             if (i - 1 >= 0 && j - 1 >= 0 && arr[i - 1][j - 1] == -1) {
  52.                 arr[i][j] = arr[i][j] + 1;
  53.             }
  54.             if (i - 1 >= 0 && j + 1 < rows && arr[i - 1][j + 1] == -1) {
  55.                 arr[i][j] = arr[i][j] + 1;
  56.             }
  57.             if (i + 1 < rows && j - 1 >= 0 && arr[i + 1][j - 1] == -1) {
  58.                 arr[i][j] = arr[i][j] + 1;
  59.             }
  60.         }
  61.     }
  62.  
  63.     // To Discord Spoiled Emoji
  64.     for (var i = 0; i < rows; i++) {
  65.         for (var j = 0; j < columns; j++) {
  66.             arr[i][j] = "zero,one,two,three,four,five,six,seven,eight".split(',').map(a => `||:${a}:||`)[arr[i][j]] || '||:bomb:||';
  67.         }
  68.         arr[i] = arr[i].join('');
  69.     }
  70.     return arr.join('\n');
  71. }
Advertisement
Add Comment
Please, Sign In to add comment