Я прочитал этот SO вопрос о том, как многократно вращать двумерный массив, и мне было любопытно, как можно расширить эту ситуацию для работы с частью двумерногомассив.Я думал об этом некоторое время, и я не могу придумать хорошее уравнение.По сути, я хочу сделать что-то вроде этого:
<b>1 2 3</b> 4 5 6 <b>13 7 1</b> 4 5 6
<b>7 8 9</b> 10 11 12 <b>14 8 2</b> 10 11 12
<b>13 14 15</b> 16 17 18 <b>15 9 3</b> 16 17 18
19 20 21 22 23 24 ----> 19 20 21 22 23 24
25 26 27 28 29 30 25 26 27 28 29 30
31 32 33 34 35 36 31 32 33 34 35 36
В настоящее время я пишу это на Ruby, но мне не особо важно, на каком языке будет решаться проблема такого рода.,Мне просто любопытно, как вы решите эту проблему.
Редактировать: Чтобы добавить еще некоторые особенности, основные параметры для функции, которая могла бы это сделать,быть что-то похожее на это
def rotate(array, times=1, x=0, y=0, len=nil)
...
end