Я читал this SO question о том, как много раз вращать двумерный массив, и мне было любопытно, как вы могли бы расширить эту ситуацию, чтобы работать с разделом двумерной массив. Я подумал об этом некоторое время, и я не могу придумать хорошее уравнение. По сути то, что я хочу сделать что-то вроде этого:Вращение секции двумерного массива
1 2 3 4 5 6 13 7 1 4 5 6 7 8 9 10 11 12 14 8 2 10 11 12 13 14 15 16 17 18 15 9 3 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, в настоящее время, но я не особенно волнует, что язык решение такого рода проблем будет. Мне просто интересно, как бы вы решили решить эту проблему.
Edit: Чтобы добавить еще некоторые специфические особенности, основные параметры для функции, которые могли бы сделать это было бы нечто похожее на эту
def rotate(array, times=1, x=0, y=0, len=nil)
...
end
Что такое 'len' пары для? – Chubas
Я создал параметр 'len', потому что подраздел должен быть квадратом. Итак, в основном, с параметром len', вы заканчиваете квадрат на решетке с координатами: '(x, y, x + len, y + len)' – ashays