SamV
BAN USERconst matrixSize = 5;
const dataGenerator = n => {
const data = [];
for (let i =0; i < n; i++) {
const insideData = [];
for (let i =0; i < n; i++) {
insideData.push(Math.round(Math.random()));
}
data.push([...insideData]);
}
return data;
};
const generateMap = path => {
path.visited = true;
if (path.x < matrixSize - 1 && inputData[path.x + 1][path.y] == 1) {
paths.push(
{
x: path.x + 1, y: path.y,
from: [...path.from, `${path.x},${path.y}`],
visited: false
});
}
if (path.y < matrixSize - 1 && inputData[path.x][path.y + 1] == 1) {
paths.push(
{
x: path.x, y: path.y + 1,
from: [...path.from, `${path.x},${path.y}`],
visited: false
}
);
}
}
const inputData = dataGenerator(matrixSize);
const paths = [{from: [], x: 0, y: 0, visited: false}];
while (paths.filter(path => !path.visited).length) {
paths.filter(path => !path.visited).forEach(path => generateMap(path));
}
const result = paths.find(
path => path.x === matrixSize - 1 && path.y === matrixSize - 1);
if (result) {
console.log("Destination reached and the route is ", result.from);
} else {
console.log("No route to the destination ");
}
console.log("Here is Input data ", JSON.stringify(inputData));
- SamV October 29, 2020