C++迷宫的实现代码
本文实例为大家分享了C++实现迷宫游戏的具体代码,供大家参考,具体内容如下
//文件的输入,有墙 #include#include #include #include usingnamespacestd; constintmax1=100*100;//加入墙 constintmax2=102; boolvalue[max2][max2];//记录是否被访问过 intmaze[max2][max2];//迷宫的大小 intn,m;//输入迷宫的长和宽 ofstreamoutfile("path.txt");//文件保存迷宫及输出的路径 structPoint//栈中的数据 { intx; inty; }; structStack { inttop; Pointpath[max1];//存坐标点的数组栈 stack() { top=-1;//栈中从0开始存数据 } boolEmpty()//检验是否为空 { if(top==-1)returntrue; else returnfalse; } voidClear()//清空栈 { top=-1; } voidPush(Pointp)//进栈 { top++; path[top]=p; } PointPop()//返回栈顶元素 { returnpath[top]; } voidDelete_Pop()//删除顶栈元素 { top--; } intY_N_Push() { intx=path[top].x; inty=path[top].y; if(x<1||y<1||x>n||y>m||!value[x][y]||maze[x][y])//不符合要求 { value[x][y]=false;//标记这个点被访问过(不能任意做标记) return1; } else if((x==n)&&(y==m))//已经找到出口,不要标记,后面直接跳出 return2; else { value[x][y]=false;//标记这个点被访问过 return3;//可以进栈 } } voidOutput()//输出栈中的路径 { inti; for(i=0;i "; } cout<<"("< "; } outfile<<"("< >n>>m; for(i=0;i<=(m+1);i++) maze[0][i]=maze[n+1][i]=1; for(i=1;i<=(n+1);i++) maze[i][0]=maze[i][m+1]=1; cout<<"输入迷宫,1为墙,0为可通路(规定左上角为入口,右下角为出口):"< 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。