下面是模拟的代码:
package rqnoj;
public class PID7 {
/**
* @param args
*/
public static int[][] a=new int[7][7];
public static int index=0;
public static void main(String[] args) {
dy(0, 0, 1);
for(int i=0;i<a.length;i++){
for(int j=0;j<a[0].length;j++){
System.out.print(a[i][j]+" \t");
}
System.out.println();
}
}
public static boolean isyuejie(int i,int j){
if(i<0||j<0) return false;
if(i==a.length||j==a[0].length) return false;
if(a[i][j]!=0) return false;
return true;
}
public static void dy(int i, int j,int k){
System.out.println("i:"+i+"j:"+j);
if(index==49) return ;
a[i][j]= ++index;
switch (k) {
case 1:
if(!isyuejie(i, j+1)){
i=i+1;
k=2;
dy(i, j, k);
}else{
dy(i, j+1, k);
}
break;
case 2:
if(!isyuejie(i+1, j)){
j=j-1;
k=3;
dy(i, j, k);
}else{
dy(i+1, j, k);
}
break;
case 3:
if(!isyuejie(i, j-1)){
i=i-1;
k=4;
dy(i, j, k);
}else{
dy(i, j-1, k);
}
break;
case 4:
if(!isyuejie(i-1, j)){
j=j+1;
k=1;
dy(i, j, k);
}else{
dy(i-1, j, k);
}
break;
default:
break;
}
}
}