Задать вопрос
@6ondawave9

Как сгенерировать маршрут в массиве координат?

Есть массив элементов по типу

S O O O O
O O O O O
O O O O O
O O O O O
O O O O E

Надо сгенерировать случайный маршрут ведущий из точки S в точку E и соответственно поменять элементы О на, пусть будет, Х.
Типо такого

S O O O O
Х O O O O
Х O O O O
Х O O O O
Х Х Х Х E

Знаем, что элементов всегда 25, в строке всегда 5 элементов и старт и финиш всегда в одном положении. Массив одномерный, но если необходим двумерный, то некритично.
Если будет решение сразу с кодом буду тысячу раз признателен.

И важное уточнение забыл, маршрут может быть диагональным
А-ля
S O O O O
O Х O O O
O O Х O O
O O O Х O
O O O O E
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Средний 16 комментариев
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
function run() {
    const arr = Array.from({length: 5}, () => Array(5).fill('0'));
    
    const pos = [0, 0];
    while(pos[0] !== 4 || pos[1] !== 4) {
        if (pos[0] === 4) {
            pos[1]++;
        } else if (pos[1] === 4) {
            pos[0]++;
        } else {
            const r = Math.floor(Math.random() * 3) + 1;
            if (r & 1) {
                pos[0]++;
            }
            if (r & 2) {
                pos[1]++;
            }
        }
        arr[pos[0]][pos[1]] = 'X';
    }
    arr[0][0] = 'S';
    arr[4][4] = 'E';
    return arr;
}

run()


можешь выполнить в консоли браузера и сразу увидеть результат
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@6ondawave9 Автор вопроса
Полагаю, можно случайно выбирать (с помощью простого рандома) идти вниз или вправо или вправо и вниз одновременно и заполнять таким образом X пока не окажемся у E, проверяя попутно не дошли ли мы до правого или нижнего края. Такой способ должен же работать, верно?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы