小白求大神帮忙看看马踏棋盘的程序。。
//检查当前状态 a为行 b为列 s为步数void check(int a,int b,int s)
{
//判断 最后一步
if(s==16)
{
//越界与重步的判断
if(a>=0&&b>=0&&a<4&&b<4&&qipan[a][b]==0)
{
qipan[a][b]=s;
}
//如果越界重步 返回
else return ;
}
//越界与重步的判断
else if(a>=0&&b>=0&&a<4&&b<4&&qipan[a][b]==0)
{
qipan[a][b]=s;
//检查下一个状态
check(a+1,b+2,s+1);
check(a-1,b+2,s+1);
check(a+1,b-2,s+1);
check(a-1,b-2,s+1);
check(a+2,b+1,s+1);
check(a+2,b-1,s+1);
check(a-2,b+1,s+1);
check(a-2,b-1,s+1);
//如果八个方向都不行 清空状态 返回上一层
qipan[a][b]=0;
return ;
}
//如果越界重步 返回
else return ;
}