}
WayCopy(oldmap,map); if(oldmap[i-1][j]==0&&!yes) {
FindWay(oldmap,i-1,j); if(yes) {
way[wayn][0]=i; way[wayn++][1]=j; return; } }
WayCopy(oldmap,map);
if(oldmap[i-1][j+1]==0&&!yes) {
FindWay(oldmap,i-1,j+1); if(yes) {
way[wayn][0]=i; way[wayn++][1]=j; return; } }
WayCopy(oldmap,map);
if(oldmap[i+1][j-1]==0&&!yes) {
FindWay(oldmap,i+1,j-1); if(yes) {
way[wayn][0]=i; way[wayn++][1]=j; return; } }
WayCopy(oldmap,map); if(oldmap[i][j-1]==0&&!yes) {
FindWay(oldmap,i,j-1); if(yes) {
way[wayn][0]=i; way[wayn++][1]=j; return; } }
WayCopy(oldmap,map);
if(oldmap[i-1][j-1]==0&&!yes) {
FindWay(oldmap,i-1,j-1); if(yes) {
way[wayn][0]=i; way[wayn++][1]=j; return; } } return; }
void MapRand(int (*map)[N]) {
int i,j; cleardevice(); randomize(); for(i=0;i for(j=0;j if(i==0||i==N-1||j==0||j==N-1) map[i][j]=1; else if(i==1&&j==1||i==N-2&&j==N-2) map[i][j]=0; else map[i][j]=random(2); } } } void PrMap(int (*map)[N]) { int i,j; setfillstyle(SOLID_FILL,10); bar(0,0,1000,1000); for(i=0;i setfillstyle(SOLID_FILL,WHITE); bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6); } else { setfillstyle(SOLID_FILL,11); bar(100+j*15-6,50+i*15-6,100+j*15+6,50+i*15+6); } } void Find(void) {int i; setfillstyle(SOLID_FILL,YELLOW); wayn--; for(i=wayn;i>=0;i--) { bar(100+way[i][1]*15-6,50+way[i][0]*15-6,100+ way[i][1]*15+6,50+way[i][0]*15+6); sleep(1); } bar(100+(N-2)*15-6,50+(N-2)*15-6,100+ (N-2)*15+6,50+(N-2)*15+6); setcolor(BLACK); settextstyle(0,0,4); outtextxy(130,400,\} void NotFind(void) { setcolor(BLACK); settextstyle(0,0,4); outtextxy(130,400,\ } void Result(void) { if(yes) Find(); else NotFind(); getch(); } void Close(void) { closegraph(); } 参考文献: 【1】、秦玉平,马靖善.《数据结构(C语言版)》.北京:清华大学出版社,2005年 【2】、谭浩强.《C程序设计(第三版)》.北京:清华大学出版社,2005年