JSFiddle - React, Tailwind, and code Playground

by rohanbhangui

HTML

<table></table>

CSS

td {
    border: 1px solid #ff0000;
    width: 20px;
    height: 20px;
    text-align: center;
    cursor: pointer;
}
table {
    border-collapse: collapse;
    font-family: sans-serif;
}

JavaScript

var mines = 140;

var COL = 15;

var ROW = 15;

var table = $("table");

for (var r = 0; r < ROW; r++) {
    var tr = $('<tr>');
    for (var c = 0; c < COL; c++)
    $('<td></td>').appendTo(tr);
    tr.appendTo(table);
}


var minePositions = [];

while (minePositions.length < mines) {
    var randomnumber = Math.ceil(Math.random() * (ROW * COL));
    var found = false;
    for (var i = 0; i < minePositions.length; i++) {
        if (minePositions[i] == randomnumber) {
            found = true;
            break;
        }
    }
    if (!found) {
        minePositions[minePositions.length] = randomnumber;
    }
}

var solutions = [];



for (var i = 0; i < ROW; i++) {
    var arr = [];
    for (var j = 0; j < COL; j++) {
        arr.push(0);
    }
    solutions.push(arr);
}

//for figuring out immediate perimeter values
$.each(minePositions, function (index, val) {
    console.log(val);
    var count = 0;
    var doneSearch = false;
    for (var i = 0; i < ROW; i++) {
        for (var j = 0; j < COL; j++) {
            //console.log(count + "," + val);
            if (count == val) {
                if (index < mines) {
                    solutions[i][j] = "M";

                    try {
                        if (solutions[i - 1][j - 1] != 'M') solutions[i - 1][j - 1] += 1;
                    } catch (err) {}
                    try {
                        if (solutions[i - 1][j] != 'M') solutions[i - 1][j] += 1;
                    } catch (err) {}
                    try {
                        if (solutions[i - 1][j + 1] != 'M') solutions[i - 1][j + 1] += 1;
                    } catch (err) {}
                    try {
                        if (solutions[i][j - 1] != 'M') solutions[i][j - 1] += 1;
                    } catch (err) {}
                    try {
                        if (solutions[i][j + 1] != 'M') solutions[i][j + 1] += 1;
                    } catch (err) {}
                    try {
                        if (solutions[i + 1][j...