JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<div id="table_content"></div>
<button id="button_revers">Сменить цвет</button>
</body>
CSS
body {
padding: 50px;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}
a {
color: #00B7FF;
}
.open {
background-color: #FFF;
}
.loose td {
background-color: #C0C0C0;
}
#table_content {
padding: 10px;
}
.black {
background-color: #000;
}
tr {
border-color: #FFF;
}
td {
background-color: #00F;
width: 25px;
height: 25px;
}
table {
border: 1px solid black;
text-align: center;
}
.yellow {
background-color: #ffff4f;
}
JavaScript
function createNode(name, klasses) {
var n = document.createElement(name);
n.className = klasses;
return n;
}
function l(x) {
console.log(x);
}
function hasClass(node, klass) {
if (!('className' in node)) {
return false;
}
return node.className.split(' ').indexOf(klass) > -1;
}
function addClass(node, klass) {
if (!hasClass(node, klass)) {
node.className += ' ' + klass;
}
}
function removeClass(node, klass) {
if (hasClass(node, klass)) {
node.className = node.className.split(klass).join('');
}
}
/**
* Добавить или удалить класс
* @param node
* @param klass
*/
function toggleClass(node, klass) {
(hasClass(node, klass)) ? removeClass(node, klass): addClass(node, klass);
}
/**
* Создать таблицу
* @param columnCount
* @param rowCount
* @returns {HTMLElement}
*/
function create_table(columnCount, rowCount) {
var target = document.getElementById('table_content');
var table = document.createElement('table');
table.id = 'table';
for (var i = 0; i < rowCount; i++) {
var row = document.createElement('tr');
for (var j = 0; j < columnCount; j++) {
var column = document.createElement('td');
row.appendChild(column);
}
table.appendChild(row);
}
target.appendChild(table);
return table;
}
/**
* Модель игры.
* @param column
* @param row
* @param mineCount
* @property array mineField модель игрового поля
* @constructor
*/
function Sapper(column, row, mineCount) {
var table = create_table(column, row);
var rows = table.rows;
var tableModel = [];
for (var rowIndex = 0; rowIndex < row; rowIndex++) {
tableModel[rowIndex] = [];
var columns = rows[rowIndex].cells;
for (var columnIndex = 0; columnIndex < column; columnIndex++) {
tableModel[rowIndex][columnIndex] = new Cell(columns[columnIndex], columnIndex, rowIndex);
}
}
for (var i = 0; i <...