马踏棋盘(有问题的且不成熟的程序)

//将棋盘上的每个位置都走一遍
public class Mataqipan {
  
      public int zou(int position[][],int m,int n,int count){
       position[m][n]=count;
       System.out.println(count);
       if(count==64){
        for(int i=0;i<8;i++){
         for(int j=0;j<8;j++){
          System.out.print(position[i][j]+" ");
         }
         System.out.println();
        }
        return 0;
       }
       else{
        //向左上走
        if(canZou(position,m+2,n+1)){
            count=count+1;
            //position[m+2][n+1]=count;
            zou(position,m+2,n+1,count);
            position[m+2][n+1]=0;
            count = count-1;
           }
        if(canZou(position,m-1,n-2)){
         count=count+1;
         // position[m-1][n-2]=count;
         zou(position,m-1,n-2,count);
         position[m-1][n-2]=0;
         count = count-1;
        }
        if(canZou(position,m-2,n-1)){
            count=count+1;
            //position[m-2][n-1]=count;
            zou(position,m-2,n-1,count);
            position[m-2][n-1]=0;
            count = count-1;
           }
       if(canZou(position,m+1,n-2)){
            count=count+1;
            //position[m+1][n-2]=count;
            zou(position,m+1,n-2,count);
            position[m+1][n-2]=0;
            count = count-1;
           }
       if(canZou(position,m+2,n-1)){
            count=count+1;
            //position[m+2][n-1]=count;
            zou(position,m+2,n-1,count);
            position[m+2][n-1]=0;
            count = count-1;
           }
       if(canZou(position,m-1,n+2)){
         count=count+1;
         //position[m-1][n+2]=count;
         zou(position,m-1,n+2,count);
         position[m-1][n+2]=0;
         count = count-1;
        }
        if(canZou(position,m-2,n+1)){
            count=count+1;
            //position[m-2][n+1]=count;
            zou(position,m-2,n+1,count);
            position[m-2][n+1]=0;
            count = count-1;
           }
        if(canZou(position,m+1,n+2)){
            count=count+1;
            //position[m+1][n+2]=count;
            zou(position,m+1,n+2,count);
            position[m+1][n+2]=0;
            //count = count-1;
           }
        //if(canZou(position,m+2,n+1)){
         //   count=count+1;
            //position[m+2][n+1]=count;
         //   zou(position,m+2,n+1,count);
          //  position[m+2][n+1]=0;
            //count = count-1;
          // }
       }
  return count;
      }
      public   boolean  canZou(int a[][],int i,int j){
     if(i<0||j<0||i>7||j>7||a[i][j]!=0){
      return false;
     }
     else{
      return true;
     } 
      }
      public static void main(String[] args){
       Mataqipan ma = new Mataqipan();
       int position[][] = new int[8][8];
       ma.zou(position,2,0,1);
      }
}

猜你喜欢

转载自blog.csdn.net/oracle1158/article/details/34117363