#include<stdio.h>
n
char map[9][9],m,n;
n
int stepi[100],stepj[100];
n
int flag=0;
n
int si,sj, di,dj;
n
int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}};
n
void dfs(int si, int sj,int cnt)
n
int i;
n
if(si>=n||sj>=m||si<0||sj<0) return;
n
if(si==di && sj==dj)
n
{
n
for(i=0;i<cnt;i++)
n
printf("%d,%d/n", stepi[i],stepj[i]);
n
printf("%d,%d/n", di,dj);
n
flag=1;
n
}
n
n
stepi[cnt]=si;
n
stepj[cnt]=sj;
n
{
n
if(map[si+dir[i][0]][sj+dir[i][1]]!='X')
n
{
n
map[si+dir[i][0]][sj+dir[i][1]]='X'; //已走过,置为x
n
dfs(si+dir[i][0],sj+dir[i][1],cnt+1);
n
map[si+dir[i][0]][sj+dir[i][1]]='.'; //返回上一步时把该方格仍置为空格
n
}
n
}
n
return;
n
}
for(i=0;i<4;i++)//尝试相邻四个可能位置