import { Brick } from '../brick'; /** * Создает массив кирпичей проинициализированных значениями в зависимости от расположения на карте уровня * @param {number[][]} levelMap карта уровня в формате массива * @param {number} brickWidth ширина кирпича, неотрицателное число * @param {number} brickHeight длина кирпича, неотрицателное число * @returns {Brick[]} массив кирпичей */ export function layBricks(levelMap, brickWidth, brickHeight) { try { if (!(Array.isArray(levelMap) && levelMap.every(Array.isArray))) { throw new Error('Значение карты уровня должно являться вложенным масивом чисел глубины 2'); } if (!(typeof brickWidth === 'number' && typeof brickHeight === 'number')) { throw new Error('Значения ширины и высоты кирпича должны являться числами'); } if (brickWidth < 0 || brickHeight < 0) { throw new Error('Значения ширины и высоты кирпича должны являться положительными целыми числами'); } const bricks = []; for (let i = 0; i < levelMap.length; i++) { for (let j = 0; j < levelMap[i].length; j++) { if (levelMap[i][j] !== 0) { bricks.push(new Brick(j * brickWidth, i * brickHeight, brickWidth, brickHeight, levelMap[i][j])); } } } return bricks; } catch (err) { console.error(err); return null; } }