JAVA-九宫格游戏

在井字型的格局中(奇数格局),放入数字,使得每行每列以及斜对角线的和都相等
  经验规则:从1开始按顺序逐个填写,1放在第一行的中间位置,下一个数往右上角45度
 处填写。如果单边越界则按头尾相接地填;如果有冲突,则填在刚才位置的底下一格
  如果双边越界,则填在刚才位置的底下一格

 

 

代码的实现:

  import java.util.Scanner;

  public class NinePalace {

   public static void main(String[] args) {  

   // 用户来输入九宫格的行列数

    Scanner scn = new Scanner(System.in);

    int N = Integer.parseInt(scn.nextLine());

    // 创建 N*N的二维数组

    int[][] a = new int[N][N];

  //这个二维数组中元素值都为默认值0

    // 定义当前放数字的行和列

    int row = 0; // 行,初始位置  

       int col = N / 2; // 列,初始位置,N/2即为中间位置  

    for (int i = 1; i <= N * N; i++) // i为要放到九宫格的数字

    {    

      a[row][col] = i;  

       row--;// 往45度方向  

       col++;

     if (row < 0 && col > N - 1) {     row = row + 2;     col--;    }

    else if (row < 0) {     row = N - 1;    }

      else if (col > N - 1) {     col = 0;    }  

      else if (a[row][col] != 0) {     row = row + 2;     col--;    }

    }  

   //输出

    for(int i=0;i<N;i++)   {  

      for(int j=0;j<N;j++)    {  

         System.out.print(a[i][j]+"\t");  

        }   

       System.out.println();  

    }

 }  

}

posted @ 2018-04-19 13:09  en*  阅读(1233)  评论(0编辑  收藏  举报