Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

Пройтись несколько раз по массиву и просчитать ходы

#массивы #алгоритм

                    
Добрый вечер, нужна подсказка для решения задачки:
Есть поле(массив) 3 на 3:

1 2 3
4 5 6
7 8 9


К примеру я выбираю поле 7 и мне надо от 7 сделать 8 шагов вверх(или же вниз,влево,вправо)
то есть если это вверх то будет такой ход: 4,1,8,5,2,9,6,3
если рассматривать ситуацию от 7 вправо то будет так: 8,9,1,2,3,4,5,6 ну и тд.
Очень буду признателен за любой совет по тому как это реализовать, реализовывать
буду на PHP но думаю здесь это не важно, так как нужен сам алгоритм решение можно даже
на словах 
    


Ответы

Ответ 1



(Как криворожанин жителю Днепропетровской области.) Вот одна из четырех функций. Три остальные будут отличаться направлениями движения (++/--), очередностью изменений i и j и проверками (не на длину, а на ноль). var arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; function goRight(arr, i, j, count) { var rows = arr.length; var cols = arr[0].length; var result = []; for (var k = 0; k < count; k++) { j++; if (j >= cols) { j = 0; i++; if (i >= rows) { i = 0; } } result.push(arr[i][j]); } return result; } console.log(goRight(arr, 2, 0, 8));

Комментариев нет:

Отправить комментарий