C++自动生成迷宫游戏
本文实例为大家分享了C++实现迷宫游戏的具体代码,供大家参考,具体内容如下
运用并查集自动生成迷宫地图,并运用队列和栈寻找迷宫通路并打印出来
#include#include #include #include #include usingnamespacestd; usingstd::queue; usingstd::stack; typedefstructPoint { intx; inty; intd;//方向若方向为-1,则表示起点 }Point; queue mqueue; stack mstack; Pointpos,pos1; intm,n;//迷宫行(tm-1)/2和列(tn-1)/2 inttm,tn;//实际作图 intx,y,tx1,tx2,ty1,ty2;//点坐标 intd; ints[10000000]; intmaze[1000][1000],mark[1000][1000];//最大迷宫 intsign[4][2]={{-1,0},{1,0},{0,-1},{0,1}};//上下左右四个方向0上1下2上3下 Pointstart; intFind_x(intx); voidunionSets(intnode1,intnode2); voidInit(); intgetAdd(intx,inty); voidfoundpath(); voidfixmaze(); intconnected(intnode1,intnode2); voidFindpath(); voidchangemaze(); intmain() { Init(); cout<<"请输入迷宫规模2x-1,2y-1:(xy)"< >m>>n; tm=m*2+1; tn=n*2+1; start.x=1; start.y=1; start.d=-1; mqueue.push(start); for(inti=0;i 0) { if(mstack.top().x==i-sign[k][0]&&mstack.top().y==j-sign[k][1]) { i=i-sign[k][0]; j=j-sign[k][1]; k=mstack.top().d; maze[i][j]=-1; if(!mstack.empty()) mstack.pop(); } elseif(!mstack.empty()) mstack.pop(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。