Problem:
パターンの回転

8 文字 × 8 行のパターンを右回りに 90 度、180 度、270 度回転させて出力するプログラムを作成してください。

Input

8 文字 × 8 行からなるパターンが与えられます。文字は、英数字、半角シャープ '#' 、アスタリスク '*' からなります。

Output

次の形式で、回転させたパターンを出力してください。

90（半角数字固定）
90度回転させたパターン
180（半角数字固定）
180度回転させたパターン
270（半角数字固定）
270度回転させたパターン

Sample Input

#*******
#*******
#*******
#*******
#*******
#*******
#*******
########

Output for the Sample Input

90
########
#*******
#*******
#*******
#*******
#*******
#*******
#*******
180
########
*******#
*******#
*******#
*******#
*******#
*******#
*******#
270
*******#
*******#
*******#
*******#
*******#
*******#
*******#
########

Solution in C# (judge verdict: Wrong Answer)

using System;

namespace AIZUJudge {
    class EquisionSolver {
        static void Main(string[] args) {
            new EquisionSolver().solve();
       }

        void solve() {
            string[,] map = new string[8, 8];
            for (int i = 0; i < map.GetLength(0); i++) {
                string line = Console.ReadLine();
                for (int j = 0; j < map.GetLength(1); j++) {
                    map[i, j] = line.Substring(j,1);
                }
            }
            Console.WriteLine(90);
            string[,] newMap = transMap(map, 90);
            for (int i = 0; i < newMap.GetLength(0); i++) {
                for (int j = 0; j < newMap.GetLength(1); j++) {
                    Console.Write(newMap[i,j]);
                }
                Console.Write("\r\n");
            }
            Console.WriteLine(180);
            newMap = transMap(map, 180);
            for (int i = 0; i < newMap.GetLength(0); i++) {
                for (int j = 0; j < newMap.GetLength(1); j++) {
                    Console.Write(newMap[i, j]);
                }
                Console.Write("\r\n");
            }
            Console.WriteLine(270);
            newMap = transMap(map, 270);
            for (int i = 0; i < newMap.GetLength(0); i++) {
                for (int j = 0; j < newMap.GetLength(1); j++) {
                    Console.Write(newMap[i, j]);
                }
                Console.Write("\r\n");
            }
        }

        string[,] transMap(string[,] map , int angle) {
            string[,] newMap = new string[map.GetLength(0), map.GetLength(1)];
            if (angle == 90) {
                for (int i = 0; i < map.GetLength(0); i++) {
                    for (int j = 0; j < map.GetLength(1); j++) {
                        newMap[j, 7 - i] = map[i, j];
                        
                    }
                }
            } else if (angle == 180) {
                for (int i = 0; i < map.GetLength(0); i++) {
                    for (int j = 0; j < map.GetLength(1); j++) {
                        newMap[j, i] = map[i, j];
                    }
                }
            } else {
                for (int i = 0; i < map.GetLength(0); i++) {
                    for (int j = 0; j < map.GetLength(1); j++) {
                        newMap[7 - j, i] = map[i, j];
                    }
                }
            }
            return newMap;
        }
    }
}