JSFiddle - React, Tailwind, and code Playground
by Josh Pullen
HTML
<button id="start">Start the (Extra) Madness</button>
JavaScript
var combine = function(a, min) {
var fn = function(n, src, got, all) {
if (n == 0) {
if (got.length > 0) {
all[all.length] = got;
}
return;
}
for (var j = 0; j < src.length; j++) {
fn(n - 1, src.slice(j + 1), got.concat([src[j]]), all);
}
return;
}
var all = [];
for (var i = min; i < a.length; i++) {
fn(i, a, [], all);
}
all.push(a);
return all;
}
function checkSol(a) {
function performMove(gridIn, piece) {
var grid = gridIn;
function toggle(pieces) {
for(n = 0; n < pieces.length; n++) {
grid[pieces[n]] = !(grid[pieces[n]]);
}
}
switch(piece) {
case 1:
toggle([1, 2, 6, 7]);
break;
case 2:
toggle([1, 2, 3, 7, 8]);
break;
case 3:
toggle([2,3,4,8,9]);
break;
case 4:
toggle([3,4,5,9,10]);
break;
case 5:
toggle([4,5,10,11]);
break;
case 6:
toggle([1,6,7,12,13]);
break;
case 7:
toggle([1,2,6,7,8,13,14]);
break;
case 8:
toggle([2,3,7,8,9,14,15]);
break;
case 9:
toggle([3,4,8,9,10,15,16]);
break;
case 10:
toggle([4,5,9,10,11,16,17]);
break;
case 11:
toggle([5,10,11,17,18]);
break;
case 12:
toggle([6,12,13,19,20]);
break;
case 13:
toggle([6,7,12,13,14,20,21]);
break;
case 14:
toggle([7,8,13,14,15,21,22]);
break;
case 15:
toggle([8,9,14,15,16,22,23]);
break;
case...