logo资料库

老鼠走迷宫之数据结构课程设计.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
数据结构课程设计——老鼠走迷宫 1.算法描述:(c++语言描述) #include #include using namespace std; const int stackmaxsize =100; const int M=6; const int N=8; int maze[M+2][N+2]; struct Move//////用来表示老鼠的移动,即坐标的加减 { int x; int y; }; Move move[4]={{0,1},{1,0},{0,-1},{-1,0}};//分别表示向上,下,左,右移动 struct data////////每一个栈元素的数据类型,x 表示横坐标,y 表示纵坐标,d 表示方向 { int x; int y; int d; }; class stack//栈,用来存储老鼠走过的路径 { private: int top; data s[stackmaxsize]; public: stack(); char stackempty(); void push(data t); data pop(); void stack::display(); }; void stack::display() { if(top==-1) { cout<<"stack is empty!!!"<
for(int i=0;i<=top;i++) { cout<
} stack s; int path(int maze[M+2][N+2],Move move[8])//寻找路径的核心算法 { int x; int y; int d; int i,j; data media; data temp; temp.x=1; temp.y=1; temp.d=-1; maze[1][1]=3; s.push(temp); while(!s.stackempty()) { media=s.pop(); x=media.x; y=media.y; d=media.d+1;//准备向前移动 while(d<4) { i=x+move[d].x;//向方向为 d 的方向移动 j=y+move[d].y; if(maze[i][j]==0)//如果当前节点未被访问过 { media.x=x; media.y=y; media.d=d; s.push(media);//将当前节点入栈 x=i; y=j; maze[x][y]=3; if(x==M&&y==N)//如果到达出口 { media.x=6; media.y=8; s.push(media); return 1;//程序结束,路径找到了 } else { d=0;
} } else//当前节点已被访问过 { d++;//向下一个方向判断 } } } return 0; } int main()////////以下程序主要用于测试 { int i=0; int j=0; for( i=0;i
for(j=0;j <1>游戏界面的设计 参考界面如下: 图中看到的小方格是按钮(JButton),当点击按钮时改变按钮的图标 以及对应矩阵的标记值,设计时可以考虑图片以及面板的颜色搭配, 增强趣味性。 <2>游戏界面框架的编写: 实现功能:添加游戏中各种功能组件,为后期的时间即各种功能添加 提供接口。 <3>游戏的编码
<一>stack 类得编写: 实现功能:具备基本的出栈入栈功能,判断栈是否为空的功能,栈的 数据类型为 struct data { }; int x; int y; int d; <二>寻找路径函数 findPath()的编写: 实现功能:能够把找到的路径存储在堆栈中,供后期绘制路径做准备。 <三>事件的添加和逻辑的处理: 这部分综合性比较强,是要把之前实现的各种功能组合起来,实现游 戏的正常运转。
分享到:
收藏