Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.

Практика: Лабиринт

Дан лабиринт. Он представлен в виде двухмерного массива нулей и единиц:

[
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 1, 0, 1],
    [0, 0, 0, 1, 0, 0, 0, 1, 0, 1],
    [0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
    [0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]

где нули - это пустота, а единицы - это стены. Перемещаться можно только по пустоте. Также известны координаты входа, и координаты выхода. Необходимо узнать можно ли пройти лабиринт.

solution.js

Реализуйте и экспортируйте функцию по умолчанию, которая принимает на вход три аргумента: map, start и finish, где map - карта лабиринта, представленная в виде двухмерного массива, start - координаты входа, представленные в виде массива из двух координат [x, y] и finish - координаты выхода, представленные в виде массива из двух координат [x, y]. Функция должна возвращать true если лабиринт возможно пройти, и false если лабиринт непреодолим. Используйте рекурсию.

Пример:

import canPass from './solution';

const lab = [
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    [1, 1, 1, 1, 1, 1, 1, 1, 0, 1],
    [0, 0, 0, 1, 0, 0, 0, 1, 0, 1],
    [0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
    [0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
];

const start = [0, 0];
const finish = [9, 5];

true == canPass(start, finish, lab);