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...