package 一;
import java.util.Scanner;
public class p4924魔法少女 {
? ? public static void main(String[] args) {
? ? ? ? Scanner s = new Scanner(System.in);
? ? ? ? int b = s.nextInt();
? ? ? ? int[][] a = new int[b + 1][b + 1];
? ? ? ? int c = 0;
? ? ? ? for (int i = 1; i < b + 1; i++) {
? ? ? ? ? ? for (int j = 1; j < b + 1; j++) {
? ? ? ? ? ? ? ? a[i][j] = ++c;
? ? ? ? ? ? }
? ? ? ? }//創(chuàng)建二維數(shù)組對(duì)數(shù)組賦值迅涮。
? ? ? ? //存儲(chǔ)操作指令。
? ? ? ? int[][] cz = new int[s.nextInt()][4];
? ? ? ? for (int i = 0; i < cz.length; i++) {
? ? ? ? ? ? for (int j = 0; j < 4; j++) {
? ? ? ? ? ? ? ? cz[i][j] = s.nextInt();
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? //這個(gè)需要注意給的坐標(biāo)不是從零開始的徽龟。
? ? ? ? int[][] d = new int[500][500];
? ? ? ? for (int i = 0; i < cz.length; i++) {
? ? ? ? ? ? int f = cz[i][2] * 2 + 1;
? ? ? ? ? ? for (int k = cz[i][0]- cz[i][2],x = 0; x < f; k++,x++) {
? ? ? ? ? ? ? ? for (int j = cz[i][1] - cz[i][2], y = 0; y < f; j++,y++) {
? ? ? ? ? ? ? ? ? ? d[x][y] = a[k][j];
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? //這里是來把數(shù)據(jù)提取出來叮姑。
? ? ? ? ? ? //找一個(gè)什么樣的關(guān)系將這些數(shù)據(jù)對(duì)應(yīng)上嘞
? ? ? ? ? ? if (cz[i][3] == 0){//順時(shí)針旋轉(zhuǎn)
? ? ? ? ? ? ? ? for (int k = cz[i][0]- cz[i][2],y = 0; y < f; k++,y++) {
? ? ? ? ? ? ? ? ? ? for (int j = cz[i][1] - cz[i][2],x = f - 1; x >= 0; j++,x--) {
? ? ? ? ? ? ? ? ? ? ? ? a[k][j] = d[x][y];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }//這里是讀取數(shù)組的x 和 y改變,這就需要考慮好他們的對(duì)應(yīng)關(guān)系据悔。
? ? ? ? ? ? else {//逆時(shí)針旋轉(zhuǎn)
? ? ? ? ? ? ? ? for (int k = cz[i][0]- cz[i][2],y = f - 1; y >= 0; k++,y--) {
? ? ? ? ? ? ? ? ? ? for (int j = cz[i][1] - cz[i][2],x = 0; x < f; j++,x++) {
? ? ? ? ? ? ? ? ? ? ? ? a[k][j] = d[x][y];
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? for (int i = 1; i < b + 1; i++) {
? ? ? ? ? ? for (int j = 1; j < b + 1; j++) {
? ? ? ? ? ? ? ? System.out.print(a[i][j] + " ");
? ? ? ? ? ? System.out.println();
? ? ? ? }
? ? }
}
借鑒其他同學(xué)方法传透,方法比較好理解,我感覺收獲大的