package com.imooc.text;
/**
* 三阶幻方8种结果
* @author 墨北之南
*
*/
public class Magic {
public static void main(String[] args) {
int a = 0, b = 1;
square1(a, b);
System.out.println();
square2(a, b);
System.out.println();
a = 2;
b = 1;
square3(a, b);
System.out.println();
square4(a, b);
System.out.println();
}
public static void square1(int i, int j) {
int n = 3, mat[][] = new int[n][n];
for (int k = 1; k <= n * n; k++) {
mat[i][j] = k;
if (k % n == 0)
i = (i + 1) % n;
else {
i = (i - 1 + n) % n;
j = (j + 1) % n;
}
}
for (i = 0; i < mat.length; i++) {
for (j = 0; j < mat[i].length; j++)
System.out.print(mat[i][j] + " ");
System.out.println();
}
System.out.println();
reverse(mat);
print1(mat);
}
public static void square2(int i, int j) {
int n = 3, mat[][] = new int[n][n];
for (int k = 1; k <= n * n; k++) {
mat[i][j] = k;
if (k % n == 0)
i = (i + 1) % n;
else {
i = (i - 1 + n) % n;
j = (j - 1 + n) % n;
}
}
for (i = 0; i < mat.length; i++) {
for (j = 0; j < mat[i].length; j++)
System.out.print(mat[i][j] + " ");
System.out.println();
}
System.out.println();
reverse(mat);
print1(mat);
}
public static void square3(int i, int j) {
int n = 3, mat[][] = new int[n][n];
for (int k = 1; k <= n * n; k++) {
mat[i][j] = k;
if (k % n == 0)
i = (i - 1 + n) % n;
else {
i = (i + 1 + n) % n;
j = (j + 1) % n;
}
}
for (i = 0; i < mat.length; i++) {
for (j = 0; j < mat[i].length; j++)
System.out.print(mat[i][j] + " ");
System.out.println();
}
System.out.println();
reverse(mat);
print1(mat);
}
public static void square4(int i, int j) {
int n = 3, mat[][] = new int[n][n];
for (int k = 1; k <= n * n; k++) {
mat[i][j] = k;
if (k % n == 0)
i = (i - 1 + n) % n;
else {
i = (i + 1 + n) % n;
j = (j - 1 + n) % n;
}
}
for (i = 0; i < mat.length; i++) {
for (j = 0; j < mat[i].length; j++)
System.out.print(mat[i][j] + " ");
System.out.println();
}
System.out.println();
reverse(mat);
print1(mat);
}
public static void reverse(int temp[][]) {
for (int i = 0; i < temp.length; i++) {
for (int j = i; j < temp[i].length; j++) {
int k = temp[i][j];
temp[i][j] = temp[j][i];
temp[j][i] = k;
}
}
}
public static void print1(int temp[][]) {
for (int i = 0; i < temp.length; i++) {
for (int j = 0; j < temp[i].length; j++) {
System.out.print(temp[i][j] + " ");
}
System.out.println();
}
}
}