trim()

Returns a new quadrille trimmed to its minimal span of filled cells. Returns undefined if the quadrille has no filled cells.

Example

(press mouse or press keys to randomize chess pattern)

code
Quadrille.cellLength = 40;
const COLS = 8, ROWS = 8;
let board, pattern, hint;
const r = Quadrille.chessSymbols.get('r');
const k = Quadrille.chessSymbols.get('k');
const N = Quadrille.chessSymbols.get('N');

function setup() {
  createCanvas(COLS* Quadrille.cellLength, ROWS * Quadrille.cellLength);
  board = createQuadrille();
  pattern = createQuadrille(8, 8);
  update();
}

function draw() {
  background('darkkhaki');
  drawQuadrille(board, { tileDisplay: 0 });
  drawQuadrille(pattern, { textColor: 'black', tileDisplay: 0 });
  drawQuadrille(hint, { tileDisplay: 0 });
}

function keyPressed() {
  update();
}

function mousePressed() {
  update();
}

function update() {
  pattern.clear().rand(1, r).rand(1, k).rand(1, N);
  const span = pattern.span;
  const trimmed = pattern.trim().fill(1);
  hint = Quadrille.or(createQuadrille(8, 8), trimmed, span.row, span.col);
  hint.not(color(0, 180));
}

Syntax

trim()