JS CSS HTML конфиг для препятствий

Статус
В этой теме нельзя размещать новые ответы.

ayayaki

Новичок
Автор темы
1
0
доброго времени суток.
на просторах гитхаба нашел для себя копию "робот-кумир" из задания огэ https://github.com/axelofan/kumir
одно но, при запуске, стены и препятствия для робота нужно расставлять самому, а мне требуется чтобы при запуске этой шняги, у меня сразу были расставлены стены-препятствия.
тоесть требуется то-ли конфиг, то-ли что, хз, я бублик в js
как это можно реализовать?
 
Решение
Ес честно, я не понимаю механику закрашивания. Механику понимаю, не вижу смысла в этом, если он должен быть, кроме изменения цвета.
robot.js:
robot.generateRandomObstacles = function() {
    // Тут можно че-нибудь переписать, если хочется добавить кастомности в числе и логике создания препятствий
    const numObstacles = Math.floor(Math.random() * (robot.HCELLS * robot.VCELLS / 4));

    for (let i in robot.walls) {
        robot.walls[i].isActive = false;
    }

    for (let i = 0; i < numObstacles; i++) {
        const x = Math.floor(Math.random() * robot.HCELLS);
        const y = Math.floor(Math.random() * robot.VCELLS);
        const isVertical = Math.random() >= 0.5;
        const wallKey = (isVertical ? 'v' : 'h') + y + '_' + x...

PaddingtonBaby

Участник
67
16
Ес честно, я не понимаю механику закрашивания. Механику понимаю, не вижу смысла в этом, если он должен быть, кроме изменения цвета.
robot.js:
robot.generateRandomObstacles = function() {
    // Тут можно че-нибудь переписать, если хочется добавить кастомности в числе и логике создания препятствий
    const numObstacles = Math.floor(Math.random() * (robot.HCELLS * robot.VCELLS / 4));

    for (let i in robot.walls) {
        robot.walls[i].isActive = false;
    }

    for (let i = 0; i < numObstacles; i++) {
        const x = Math.floor(Math.random() * robot.HCELLS);
        const y = Math.floor(Math.random() * robot.VCELLS);
        const isVertical = Math.random() >= 0.5;
        const wallKey = (isVertical ? 'v' : 'h') + y + '_' + x;

        if (robot.walls[wallKey]) {
            robot.walls[wallKey].isActive = true;
        }
    }
};
Куда-то в пределы тэга script в основном файле index.html
index.html:
robot.create = function (container) {
    for (let i = 0; i <= robot.VCELLS; i++) {
        for (let j = 0; j <= robot.HCELLS; j++) {
            robot.cells[i + '_' + j] = new Cell(j, i);
            robot.walls['v' + i + '_' + j] = new Wall(j, i, true);
            robot.walls['h' + i + '_' + j] = new Wall(j, i, false);
        }
    }
    robot.canvas.width = (robot.CELL_SIZE + robot.WALL_SIZE) * robot.HCELLS + robot.WALL_SIZE;
    robot.canvas.height = (robot.CELL_SIZE + robot.WALL_SIZE) * robot.VCELLS + robot.WALL_SIZE;
    container.appendChild(robot.canvas);

    robot.img.src = 'robot.png';
    robot.img.onload = function () {
        robot.draw();
    }

    robot.generateRandomObstacles();
}
 
Статус
В этой теме нельзя размещать новые ответы.