Цикл по спирали снаружи-в

Я пытаюсь перебрать матрицу, похожую наЦикл по спирали но зацикливание снаружи-внутрь, а не наизнанку. Может кто-нибудь помочь мне с хорошим способом сделать это для матрицы любого размера, в идеале в Ruby?

Пример: в матрице 3x4 я хочу начать с [0,0], двигаясь вправо, затем двигаться вниз, как только я достигну [3,0], двигаться влево на [3,2] и т. Д.

[0,0] [1,0] [2,0] [3,0]
[0,1] [1,1] [2,1] [3,1]
[0,2] [1,2] [2,2] [3,2]

Порядок перемещения показан ниже:

0  1  2  3
9  10 11 4
8  7  6  5

И вывод будет:

[0,0], [1,0], [2,0], [3,0], [3,1], [3,2], [2,2], [1,2], [0,2], [0,1], [1,1], [2,1]

Ответы на вопрос(0)

Ваш ответ на вопрос