您好,欢迎访问三七文档
迷宫代码:#includeiostream.h#includetime.h#includestdlib.hintm,n;//地图大小,即行与列intchoose;//选择是用户生成地图或电脑生成地图intsteps;//记录步数intmaze[100][100];//迷宫矩阵,读入迷宫数据,0表示有路,1表示有障碍intmark[100][100];//标记数组,记录是否被访问过intwalk[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//记录遍历方向inti,j;ints=0,step=0;//记录步数introad1[100],road2[100];//存储路径的数组boolSeekPath(intx,inty)//寻找路径的函数{intg,h;if((x==m)&&(y==n))returntrue;//到达终点返回truefor(i=0;i4;i++){g=x+walk[i][0];h=y+walk[i][1];if((maze[g][h]==0)&&(mark[g][h]==0))//判断是否能走且未被访问过{mark[g][h]=1;//设置已被访问if(SeekPath(g,h)){road1[s]=g;road2[s]=h;//记录路径坐标++s;step=s;returntrue;}}}returnfalse;}intuser(){cout0为通过,1为障碍物endl;cout例如:如果你设置4行4列的地图,需输入如下格式的地图endl;cout0101endl;cout0001endl;cout1100endl;cout请设置你的地图:endl;for(i=0;in+2;i++){maze[0][i]=1;}for(i=0;im+2;i++){maze[i][0]=1;}for(i=0;in+2;i++){maze[m+1][i]=1;}for(i=0;im+2;i++){maze[i][n+1]=1;}//在迷宫外面加一圈围墙for(inti=1;im+1;i++)//输入地图数据for(intj=1;jn+1;j++)cinmaze[i][j];for(i=0;im+2;i++)//标记数组赋初始值0for(j=0;jn+2;j++)mark[i][j]=0;mark[1][1]=1;//起点赋制为1cout你设置的地图为endl;for(i=0;in+2;i++){for(j=0;jm+2;j++)coutmaze[i][j];//输入地图数据coutendl;}return0;}intcomputer(){for(i=0;in+2;i++){maze[0][i]=1;}for(i=0;im+2;i++){maze[i][0]=1;}for(i=0;in+2;i++){maze[m+1][i]=1;}for(i=0;im+2;i++){maze[i][n+1]=1;}//在迷宫外面加一圈围墙for(i=1;im+1;i++){for(j=1;jn+1;j++){maze[i][j]=rand()%5;//产生随机数if(maze[i][j]==1){maze[i][j]=1;}else{maze[i][j]=0;}}}maze[1][1]=0,maze[m][n]=0;//起点终点赋初始值0cout生成的地图为endl;for(i=0;im+2;i++){for(j=0;jn+2;j++)coutmaze[i][j];//输入地图数据coutendl;}for(i=0;im+2;i++)//标记数组赋初始值0for(j=0;jn+2;j++)mark[i][j]=0;mark[1][1]=1;//起点赋制为1return0;}intdisplay(){cout寻找路径中...endl;if(SeekPath(1,1))//调用行走迷宫函数,从入口处开始行走{cout找到路了,\x01\x01\x01\x01这是路径坐标.endl(2,2);for(s=step-1;s=0;--s)//输出路径坐标cout(road1[s]+1,road2[s]+1),;}elsecout这个迷宫没有出路endl;return0;}voidmain(){ints=1;while(s){cout欢迎进入迷宫游戏,此游戏可以输出走出迷宫的路径endl;cout请选择地图生成方式,1为用户生成,0为电脑自动生成,请选择:endl;cinchoose;cout请输入迷宫的行数m:endl;cinm;if(m=0)break;cout请输入迷宫的列数n:endl;cinn;if(n=0)break;if(choose){user();//调用用户生成迷宫函数display();//调用输出迷宫路径函数}else{computer();//调用电脑生成迷宫函数display();//调用输出迷宫路径函数}coutendl是否继续?是请按1,否请按0endl;cins;coutendl;}}
本文标题:迷宫游戏代码
链接地址:https://www.777doc.com/doc-4891221 .html