数据结构课设-走迷宫游戏
一、需求分析
1.问题描述:
2.基本功能
(1)开始游戏(2)重新开始(3)保存图片(4)载入图片(5)自会地图(6)自动寻路(7)设置时间()游戏帮助 3.输入输出
数据类型:结构体,整形数据
输入:按照窗口、菜单提示按鼠标左键
移动老鼠位置,按键盘的上、下、左、右键
输出:可视化迷宫二、 概要设计
1.设计思路:
1).利用mfc可以把迷宫地图以及老鼠形象可变的导出来。
2).需要有墙有路,通过把迷宫地图划分成一个一个小方块,通过一个数组的值来判断是墙是路。(1表示墙0表示路)
3).利用栈,来存入当前位置,然后判断下一位置,存入栈中 (4).把每个数组元素对应一个按钮根据点击按钮,改变数组的值从而改变墙和路的转化。 2.数据结构设计:
本程序运用的逻辑结构是线性和存储结构为顺序。之所以采用本结构是因为,迷宫主要用到栈来储存当前位置,和判断下一位置,来入栈。
抽象数据类型线性表的定义如下:
ADT Stack{ 数据对象:D={ai| ai ∈ElemSet,i=1,2,3……,n,n≥0}
数据关系:R1={| ai-1,ai ∈D,i=1,2,3,……,n}
基本操作:
Initstack(&s)
操作结果:构造一个空栈s。
Stackempty(s)
初始条件:栈s已经存在。
操作结果:将s清为空栈。
Push(&s,e)
初始条件:栈s已经存在。
操作结果:插入元素e为新的栈顶元素。
Pop(&s,&e)
初始条件:栈s已经存在,且非空。
操作结果:删除s的栈顶元素,并用e返回其值。
} ADT Stack
3.软件结构设计:
开始游戏void CMainFrame::OnStart():开始游戏。void CLabyrinthView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags):小老鼠键盘操。第一个参数表示哪个按键,接受上、下、左、右字符,判断调用哪个小老鼠图片,最后用脚印图片覆盖老鼠图片,达到朝前走,留下脚印的效果。(2)重新开始void CMainFrame::OnSysmap():系统地图。
void CLabyrinthView::OnSelfmap()、void CLabyrinthView::OnLButtonDown(UINT nFlags, CPoint point):绘制地图函数。达到墙变路、路变墙的目的。(3)保存图片void CMainFrame::OnSave():保存地图。(4)载入图片void CMainFrame::OnOpen():载入地图。BOOL CLabyrinthView::OnEraseBkgnd(CDC* pDC):设置欢迎画面,载入图片。(5)自地图void CLabyrinthView::OnLButtonDown(UINT nFlags, CPoint point): 墙变路,路变墙
(6)自动寻路void CLabyrinthView::OnAuto():为自动寻路函数。其重要调用Seqstack * CSkfction::init_Seqstack()、int CSkfction::Empty_Seqstack(Seqstack *s)、int CSkfction::Push_Seqstack(Seqstack *s,DataType x)、int CSkfction::Pop_Seqstack(Seqstack *s,DataType *x)函数。(7)设置时间int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct):到达在在状态栏中显示时间,调用了系统的函数SetTimer(1,1000,NULL); 第一个参数为对应时器的代 。在一个程序中,可能有多个SetTimer,在Ontime响应时,可以根据第一个参数来确定是哪一个记时器所引起的事件。第二个参数用于设置时间。 第三个参数为一个回调函数的指针,用NULL的话,系统会把
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35079 人正在系统学习中 相关资源:电脑鼠仿真软件_电脑鼠-Web开发代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!