Minesweeper with level generator... This code generates minesweeper levels and then sends its playable form on discord, just type !minesweeper... Goodluck and have fun!
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
const minesweeper = require('minesweeper');
//no need to adjust the code... just type !minesweeper and enjoy.
//you can still adjust the emojis, the amount of columns, rows and mines!
//this code can handle 4 mines max but you can adjust the code to increase the amount of mines :)
// ( ( DONT REMOVE THE "||" FROM THE EMOJIS! ) )
const bomb = '||💣||'; //bomb emoji
const one = '||1️⃣||'; //one emoji
const two = '||2️⃣||'; //two emoji
const three = '||3️⃣||'; //three emoji
const four = '||4️⃣||'; //four emoji
const empty = '||🟦||'; //empty emoji (blue square)
let level = [
[0, 0, 0, 0, 0, 0], //1st row
[0, 0, 0, 0, 0, 0], //2nd row
[0, 0, 0, 0, 0, 0], //3rd row
[0, 0, 0, 0, 0, 0], //4th row
]; //#1,#2,#3,#4,#5,#6th cole
//numAdjacentMines
const minefield = await minesweeper.generateMineArray({
rows: 4,
cols: 6,
mines: 3,
});
let board = new minesweeper.Board(minefield);
let grid = board._grid;
for (let i2 = 0; i2 < 4; i2++) { //row number (y)
for (let i1 = 0; i1 < 6; i1++) {//col number (x)
level[i2][i1] = empty;
if (grid[i2][i1].isMine) {
level[i2][i1] = bomb;
} else {
if (grid[i2][i1].numAdjacentMines === 1) {
level[i2][i1] = one;
}
if (grid[i2][i1].numAdjacentMines === 2) {
level[i2][i1] = two;
}
if (grid[i2][i1].numAdjacentMines === 3) {
level[i2][i1] = three;
}
if (grid[i2][i1].numAdjacentMines === 4) {
level[i2][i1] = four;
}
}
}
}
let row1 = level[0].join('');
let row2 = level[1].join('');
let row3 = level[2].join('');
let row4 = level[3].join('');
await lib.discord.channels['@0.3.2'].messages.create({
channel_id: `${context.params.event.channel_id}`, //if you changed to mine amount dont forget to change the reply message!
content: `Be carefull, there are three mines!
${row1}
${row2}
${row3}
${row4}`,
});
//if you have any problems please DM the coder on discord: OxO#0001