最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
我的马踏棋盘
时间:2008-04-26 编辑:简简单单 来源:一聚教程网
/* 马踏棋盘 */
/* horse2.c */
/* 2003-9-16 */
/* 为马儿寻找一条不回溯的道路遍历棋盘 */
#include
#include
#include
#define N 6
int v[]={-1,1,-2,2,-2,2,-1,1};
int h[]={-2,-2,-1,-1,1,1,2,2};
int count=0;
int nl=0,nk=0,ndirec=0;
int nosolve=0;
struct square{
int x;
int y;
int direc;
}a[N*N];
int board[N][N]={0};
int valid(int i,int j);
void jump(int i,int j,int d);
void outroute(FILE* fp);
void cartoon();
void main(){
int x,y;
int l,k,direc;
int gdriver=DETECT,gmode;
initgraph(&gdriver,gmode,"c:\tc20\bgi");
printf("nnPlease input start position,range: (1,1)~(6,6)n");
scanf("%d,%d",&l,&k);
l--;k--;
direc=0;
count=0;
setcolor(WHITE);
while(1){
jump(k,l,direc);
if(nosolve){break;}
l=nl;
k=nk;
direc=ndirec;
}
closegraph();
getch();
}
/* 跳到棋盘上某一格 */
void jump(int k,int l,int direc){
int i,j;
a[count].x=l;
a[count].y=k;
a[count].direc=direc;
board[k][l]=count+1;
if(count>=N*N-1){
/* outroute(fp); */
cartoon();
count++;
return;
}
else {
count++;
nl=l+v[direc];
nk=k+h[direc];
if(valid(nk,nl)){
ndirec=0;
&nbs
-
上一个: 迷宫探路IV(递归算法)
-
下一个: 迷宫探路II
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10