'use strict'; function is_wall(size, x, y) { return ( x === 0 || x === size-1 || y === 0 || y === size-1 ); } function is_corner(size, x, y) { const subsize = Math.floor(size/3); return ( (x < subsize || x >= 2*subsize) && (y < subsize || y >= 2*subsize) ); } function get_team(size, x, y) { const subsize = Math.floor(size/3); if (y < subsize) { return 0; } else if (x >= 2*subsize) { return 1; } else if (y >= 2*subsize) { return 2; } else if (x < subsize) { return 3; } else { return undefined; } } export function setup_board(size) { const lattice = [...Array(size)] .map(() => [...Array(size)]) .map((row, y) => row.map((_, x) => { if (is_wall(size, x, y)) { return { type: 'immutable', flags: {} }; } else if (is_corner(size, x, y)) { return { type: 'immutable', flags: {} }; } else { const team = get_team(size, x, y); return { type: 'empty', flags: { team } }; } })); return lattice; }