@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
  • Вопрос задан
  • 141 просмотр
Решения вопроса 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, проверяя попутно не дошли ли мы до правого или нижнего края. Такой способ должен же работать, верно?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы