Nonoblock: Difference between revisions

m
m (Use ternary)
Line 935:
const gapPerms = (grpSize, numGaps, minVal = 0) => {
const maxVal = numGaps - grpSize * minVal + minVal;
const sumsToTrg = sumsTo(numGaps);
const hasInnerZero = hasInner(0);
const noInnerZero = compose(inv, hasInnerZero);
return maxVal <= 0
? (grpSize === 2 ? [[0]] : [])
: (looper(mkArr(grpSize, minVal), maxVal)[1]);
.filter(noInnerZero)
.filter(sumsToTrg);
}
 
const test = (cells, ...blocks) => {
console.log(`\n${cells} cells. Blocks: ${blocks}`);
const grpSize = blocks.length + 1;
const numGaps = cells - sumArr(blocks);
 
// Filter functions
const sumsToTrg = sumsTo(numGaps);
const hasInnerZeronoInnerZero = compose(inv, hasInner(0));
 
// Output formatting
const combine = zipArr([...blocks]);
const choices = toBin(choose(0, 1));
const output = compose(console.log, arrJoin(''), choices, combine);
 
gapPerms(grpSize, numGaps).map(compose(output, choices, combine));
console.log(`\n${cells} cells. Blocks: ${blocks}`);
gapPerms(grpSize, numGaps).map(compose(output, choices, combine));
.filter(noInnerZero)
.filter(sumsToTrg);
.map(output);
};
 
Anonymous user