export const GRID_ROWS = 10; export const GRID_COLS = 10; const cell = (r: number, c: number) => `${r},${c}`; const set = (cells: [number, number][]) => new Set(cells.map(([r, c]) => cell(r, c))); export const SAFEHOUSE = set( Array.from({ length: 3 }, (_, r) => Array.from({ length: 3 }, (_, c) => [4 + r, 4 + c] as [number, number]), ).flat(), ); export const FOOD = set([ [1, 1], [1, 8], [8, 1], [8, 8], ]); export const WALLS = set([ [3, 3], [3, 6], [7, 3], [7, 6], [2, 5], [5, 2], [5, 7], [7, 5], ]); export const AGENT_SPAWNS: [number, number][] = [ [4, 4], [4, 5], [5, 4], ]; export const ZOMBIE_SPAWNS: [number, number][] = [ [0, 0], [0, 9], [9, 9], ]; export const isWall = (r: number, c: number) => WALLS.has(cell(r, c)); export const isFood = (r: number, c: number) => FOOD.has(cell(r, c)); export const isSafehouse = (r: number, c: number) => SAFEHOUSE.has(cell(r, c)); export const inBounds = (r: number, c: number) => r >= 0 && r < GRID_ROWS && c >= 0 && c < GRID_COLS;