export const MAP_W = 172; export const MAP_H = 122; export const CELL_SIZE = 6; export const SIZE = MAP_W * MAP_H; export const INF = 1e9; export function indexOf(x, y) { return y * MAP_W + x; } export function xyOf(i) { return [i % MAP_W, Math.floor(i / MAP_W)]; } export function inside(x, y) { return x >= 0 && y >= 0 && x < MAP_W && y < MAP_H; } export function clamp(v, a = 0, b = 1) { return Math.max(a, Math.min(b, v)); } export function nearMapEdge(x, y, margin = 1) { return x < margin || y < margin || x >= MAP_W - margin || y >= MAP_H - margin; }