JSFiddle - React, Tailwind, and code Playground
by SwampFall
JavaScript
var cols = 3;
var rows = 3;
function gridInit() {
var g = [];
for (var r = 0; r < rows; r++) {
g.push([]);
for (var c = 0; c < cols; c++) {
g[r].push(0);
}
}
return g;
}
solve();
function solve() {
for (var r = 0; r < rows / 2; r++) {
for (var c = 0; c < cols / 2; c++) {
var grid = gridInit();
solveStep(r, c, copy(grid), 1);
}
}
}
function solveStep(r, c, grid, sc) {
grid[r][c] = sc;
console.log(grid);
// c
gC = gridC(r, c, grid);
console.log(gC);
//solveStep(r + 1, c, gC, sc + 1);
// f
gF = gridF(r, c, grid);
console.log(gF);
// n
gN = gridN(r, c, grid);
}
function gridC(r, c, g) {
return gridK(r, c, 1, g);
}
function gridF(r, c, g) {
return gridK(r, c, 2, g);
}
function gridN(r, c, g) {
}
function gridK(r, c, d, g) {
let grid = copy(g);
for (let rr = 0; rr < rows; rr++) {
for (let cc = 0; cc < cols; cc++) {
if (grid[rr][cc] <= 0) {
grid[rr][cc]--;
}
}
}
for (let rr = r - d; rr <= r + d; rr++) {
if (rr >= 0 && rr < rows) {
for (let cc = c - d; cc <= c + d; cc++) {
if (cc >= 0 && cc < cols) {
if (grid[rr][cc] == -1) {
if (Math.abs(rr - r) == d || Math.abs(cc - c) == d) {
grid[rr][cc] = 0;
}
}
}
}
}
}
return grid;
}
function copy(g) {
return JSON.parse(JSON.stringify(g));
}