正文

迷宫2007-07-06 21:27:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wwwzrccom/27355.html

分享到:

头文件 #define D 10struct node1{ int x; int y;};struct node2{ int x; int y; int d;};#ifndef migongtou_H#define migongtou_Hclass M{public:  M( int [][10] ); void zoulu(); void printf(); void chenggong();private: node1 fangxiang[8]; node2 first[30]; int a[D][D]; int top; int InX,InY,OutX,OutY,d;};#endifCPP文件 #include<iostream>#include"migongtou.h"using namespace std;M::M( int b[][10] ){ for(int i=0;i<D;i++)  for(int j=0;j<D;j++)   a[i][j]=b[i][j]; InX=1;InY=1;OutX=6;OutY=8; top=0; fangxiang[7].x=-1;fangxiang[7].y= 1; fangxiang[0].x= 0;fangxiang[0].y= 1; fangxiang[1].x= 1;fangxiang[1].y= 1; fangxiang[2].x= 1;fangxiang[2].y= 0; fangxiang[3].x= 1;fangxiang[3].y=-1; fangxiang[4].x= 0;fangxiang[4].y=-1; fangxiang[5].x=-1;fangxiang[5].y=-1; fangxiang[6].x=-1;fangxiang[6].y= 0;   first[top].x=1;first[top].y=1;first[top].d=-1; top++; first[top].x=1;first[top].y=1;first[top].d=-1; d=0;}void M::chenggong (){ cout<<"恭喜你成功走出去了"<<endl;}void M::zoulu (){ int i,j; while(top!=-1) {  InX=first[top].x;InY=first[top].y;d=first[top].d;  top--;++d;  system("cls");  printf();  while(d<8)  {   i=InX+fangxiang[d].x;j=InY+fangxiang[d].y;   if(a[i][j]!=1&&(i!=first[top].x||j!=first[top].y))     {     ++top;     first[top].x=InX;first[top].y=InY;     first[top].d=d;     InX=i;InY=j;d=0;     system("cls");     printf();     if(OutX==InX&&OutY==InY)     { chenggong();return ;}     }   else    d++;  } } cout<<"对不起你失败了"<<endl; return;}void M::printf (){ cout<<endl; for(int i=0;i<8;i++) { for(int j=0;j<D;j++)   if((i!=InX)||(j!=InY))    cout<<a[i][j]<<' ';   else  cout<<'\1'<<' '; cout<<endl; } for(int z=0;z<30000;z++)  for(int q=0;q<20000;q++)  ;}    主函数 #include<iostream>#include"migongtou.h"using namespace std;void main(){ int c[10][10]={1,1,1,1,1,1,1,1,1,1,         1,0,1,1,1,0,1,1,1,1,      1,1,0,1,0,1,1,1,1,1,      1,0,1,0,0,0,0,0,1,1,      1,0,1,1,1,0,1,1,1,1,      1,1,0,0,1,1,0,0,0,1,      1,0,1,1,0,0,1,1,0,1,      1,1,1,1,1,1,1,1,1,1}; for(int i=0;i<10;i++) {for(int j=0;j<10;j++)   cout<<c[i][j]<<' '; cout<<endl; } M ch( c ); ch.zoulu(); return;}

阅读(2496) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册