头文件 #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;}

评论