本文实例为大家分享了C++实现迷宫游戏的具体代码,供大家参考,具体内容如下
//文件的输入,有墙 #include#include #include #include using namespace std; const int max1=100*100; //加入墙 const int max2=102; bool value[max2][max2]; //记录是否被访问过 int maze[max2][max2]; //迷宫的大小 int n,m; //输入迷宫的长和宽 ofstream outfile("path.txt"); //文件保存迷宫及输出的路径 struct Point //栈中的数据 { int x; int y; }; struct Stack { int top; Point path[max1]; //存坐标点的数组栈 stack() { top=-1; //栈中从0开始存数据 } bool Empty() //检验是否为空 { if(top==-1)return true; else return false; } void Clear() //清空栈 { top=-1; } void Push(Point p) //进栈 { top++; path[top]=p; } Point Pop() //返回栈顶元素 { return path[top]; } void Delete_Pop() //删除顶栈元素 { top--; } int Y_N_Push() { int x=path[top].x; int y=path[top].y; if(x<1||y<1||x>n||y>m||!value[x][y]||maze[x][y]) //不符合要求 { value[x][y]=false; //标记这个点被访问过(不能任意做标记) return 1; } else if((x==n)&&(y==m)) //已经找到出口,不要标记,后面直接跳出 return 2; else { value[x][y]=false; //标记这个点被访问过 return 3; //可以进栈 } } void Output() //输出栈中的路径 { int i; 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为可通路(规定左上角为入口,右下角为出口):"<
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。