I have written two rotation functions that operate on a character array of length equal to a perfect square.
The first rotate n times each odd line to the right and n times each pair line to the left. The second rotates n times each odd column down and n times each pair column up, where n is the numer of current line or column.
Example:
abcde
fghij
klmno
pqrst
uvwxy
Becomes:
eabcd
hijfg
mnokl
tpqrs
uvwxy
And finally:
unoxd
epqcg
hvwfl
mabks
tijry
I would like to reduce everything to a single function, or rather, to a single loop that moves each character in its final position without performing all the steps.
You can do this? Any suggestions?