#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define M 8
//宏定义棋盘大小
#define SIZE 100
int board[M][M];
typedef struct direct
{
int r,c,pathnum ;
}
dir ;
typedef struct nodetype
{
int r,c,pathnum ;
//在棋盘中的位置坐标r,c及结点可走方向数目 pathnum
struct nodetype*next,*prior ;
}
node ;
//用来计算当前位置可走的方向数目
int pathnum(int row,int cn)
{
int a,b,count=0 ;
a=row ;
b=cn ;
//当前位置可选方向可以走通,则数目加一
if(a-2>=0&&b-1>=0&&board[a-2][b-1]==0)
count++;
if(a-2>=0&&b+1<M&&board[a-2][b+1]==0)
count++;
if(a+2<M&&b-1>=0&&board[a+2][b-1]==0)
count++;
if(a+2<M&&b+1<M&&board[a+2][b+1]==0)
count++;
if(a-1>=0&&b+2<M&&board[a-1][b+2]==0)
count++;
if(a-1>=0&&b-2>=0&&board[a-1][b-2]==0)
count++;
if(a+1<M&&b+2<M&&board[a+1][b+2]==0)
count++;
if(a+1<M&&b-2>=0&&board[a+1][b-2]==0)
count++;
return count ;
}
//寻找路径函数
void findway(int m,int n)
{
dir f[8],path ;
int i,j,k, stepnum ;
stepnum=1 ;
i=m ;
j=n ;
while(stepnum<M*M&&i<M&&j<M&&i>=0&&j>=0)
{
board[i][j]=stepnum ;
printf("%d,%d,%d ",i,j,board[i][j]);
//用来标志可走方向数的最小值
path.pathnum=8 ;
//对方向数组赋初值