function positionsToCellsIdx(position) { const colIdx = Math.floor(position.x / cellSize); const rowIdx = Math.floor(position.y / cellSize); return { xi: colIdx, yi: rowIdx }; } function overBorder(position) { let xi = position.x; let yi = position.y; if (xi >= xpx) { xi = xi - xpx; } if (xi < 0) { xi = xpx + xi - 1; } if (yi >= ypx) { yi = yi - ypx; } if (yi < 0) { yi = ypx + yi - 1; } return { x: xi, y: yi }; } function overBordFix(position){ let xi = position.x; let yi = position.y; if (yi < 0) { yi = rows - 1; } if (xi < 0) { xi = cols - 1; } if (yi >= rows) { yi = 0; } if (xi >= cols) { xi = 0; } return { x: xi, y: yi }; }