欢迎来到天天文库
浏览记录
ID:47030390
大小:439.51 KB
页数:16页
时间:2019-07-01
《《数据结构课程设计》走迷宫游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息工程学院课程设计报告课程名称《数据结构》课题名称走迷宫游戏专业班级学号姓名联系方式指导教师2015年12月27日目录1、数据结构课程设计任务书11.1、题目11.2、要求12、总体设计12.1、设计思路及总体组成框架12.2、操作流程图23、详细设计53.1、程序中所采用的数据结构及存储结构的说明53.2、函数功能模块说明53.3、各函数的调用关系74、调试与测试:74.1、调试方法与步骤:74.2、测试结果的分析与讨论:84.3、测试过程中遇到的主要问题及采取的解决措施:106、源程序清单107、数据结构课程设计总结148、参考文献141、数据结构课程设计任务书1.1题目程序开始
2、运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。1.2、要求1)老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;2)迷宫的墙足够结实,老鼠不能穿墙而过;3)正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;4)添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;5)找出走出迷宫的所有路径。利用序列化功能实现迷宫地图文件的存盘和读出等功能 2、总体设计2.1、设计思路及总体组成框架1、思路(1).利用mfc可以把迷宫地图以及老鼠形象可变的导出来。(2).需要有墙有路,通过把迷宫地图
3、划分成一个一个小方块,通过一个数组的值来判断是墙是路。(1表示墙0表示路)(3).利用栈,来存入当前位置,然后判断下一位置,是否有路,存入栈中或出栈。(4).把每个数组元素对应一个按钮根据点击按钮,改变数组的值从而改变墙和路的转化。(5).键盘接受字符,根据字符调用不同的图片,达到老鼠超前走的效果。2、数据结构本程序运用的逻辑结构是线性和存储结构为顺序。之所以采用本结构是因为,迷宫主要用到栈来储存当前位置,和判断下一位置,来入栈。抽象数据类型线性表的定义如下:ADTStack{数据对象:D={ai
4、ai∈ElemSet,i=1,2,3……,n,n≥0}数据关系:R1={5、>6、ai-1,ai∈D,i=1,2,3,……,n}基本操作:Initstack(&s)操作结果:构造一个空栈s。Stackempty(s)初始条件:栈s已经存在。操作结果:将s清为空栈。Push(&s,e)初始条件:栈s已经存在。操作结果:插入元素e为新的栈顶元素。Pop(&s,&e)第14页初始条件:栈s已经存在,且非空。操作结果:删除s的栈顶元素,并用e返回其值。}ADTStack3、根据课程设计题目的功能要求,总体概要的组成框图如下:开始保存地图操作界面载入地图地图的绘制迷宫自动寻路游戏时间设置小老鼠键盘操音效设置结束用户登陆界面2.2、操作流程图1、键盘操作流程:第14页开始N7、Y按下键盘按方向键up方向键down方向键left方向键rightif(wall[i][j]==08、9、wall[i][j]==2)判断是否到达粮仓根据对应的操作老鼠进行相应的修改x,yNN结束YY2、模块流程图:开始第14页模块初始化加载迷宫地图N判断键是否按下N启动计时Y是否撞墙老鼠移动NY时间为零到达终点N停止移动YY游戏结束面向对象而非面向工程的程序设计,事件和判断都具有同时性和并发性。3、游戏界面显示第14页新建登陆dlg类对象,并且显示出来初始化迷宫数组根据对应的迷宫数组初始化迷宫地图,同时初始化背景音乐,显示当前设置时间和剩余时间。点击开始按钮3、详细设计3.1、程序中所采10、用的数据结构及存储结构的说明数据类型:结构体,整形数据输入:按照窗口、菜单提示按鼠标左键移动老鼠位置,按键盘的上、下、左、右键输出:可视化迷宫3.2、函数功能模块说明(1)开始游戏voidCMainFrame::OnStart():开始游戏。voidCLabyrinthView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags):小老鼠键盘操。第一个参数表示哪个按键,接受上、下、左、右字符,判断调用哪个小老鼠图片,最后用脚印图片覆盖老鼠图片,达到朝前走,留下脚印的效果。(2)重新开始voidCMainFrame::OnSysmap():系统地图。v11、oidCLabyrinthView::OnSelfmap()、voidCLabyrinthView::OnLButtonDown(UINTnFlags,CPointpoint):绘制地图函数。达到墙变路、路变墙的目的。(3)保存图片voidCMainFrame::OnSave():保存地图。(4)载入图片voidCMainFrame::OnOpen():载入地图。BOOLCLabyrinthView::OnEraseBkgnd(CDC*pDC)
5、>
6、ai-1,ai∈D,i=1,2,3,……,n}基本操作:Initstack(&s)操作结果:构造一个空栈s。Stackempty(s)初始条件:栈s已经存在。操作结果:将s清为空栈。Push(&s,e)初始条件:栈s已经存在。操作结果:插入元素e为新的栈顶元素。Pop(&s,&e)第14页初始条件:栈s已经存在,且非空。操作结果:删除s的栈顶元素,并用e返回其值。}ADTStack3、根据课程设计题目的功能要求,总体概要的组成框图如下:开始保存地图操作界面载入地图地图的绘制迷宫自动寻路游戏时间设置小老鼠键盘操音效设置结束用户登陆界面2.2、操作流程图1、键盘操作流程:第14页开始N
7、Y按下键盘按方向键up方向键down方向键left方向键rightif(wall[i][j]==0
8、
9、wall[i][j]==2)判断是否到达粮仓根据对应的操作老鼠进行相应的修改x,yNN结束YY2、模块流程图:开始第14页模块初始化加载迷宫地图N判断键是否按下N启动计时Y是否撞墙老鼠移动NY时间为零到达终点N停止移动YY游戏结束面向对象而非面向工程的程序设计,事件和判断都具有同时性和并发性。3、游戏界面显示第14页新建登陆dlg类对象,并且显示出来初始化迷宫数组根据对应的迷宫数组初始化迷宫地图,同时初始化背景音乐,显示当前设置时间和剩余时间。点击开始按钮3、详细设计3.1、程序中所采
10、用的数据结构及存储结构的说明数据类型:结构体,整形数据输入:按照窗口、菜单提示按鼠标左键移动老鼠位置,按键盘的上、下、左、右键输出:可视化迷宫3.2、函数功能模块说明(1)开始游戏voidCMainFrame::OnStart():开始游戏。voidCLabyrinthView::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags):小老鼠键盘操。第一个参数表示哪个按键,接受上、下、左、右字符,判断调用哪个小老鼠图片,最后用脚印图片覆盖老鼠图片,达到朝前走,留下脚印的效果。(2)重新开始voidCMainFrame::OnSysmap():系统地图。v
11、oidCLabyrinthView::OnSelfmap()、voidCLabyrinthView::OnLButtonDown(UINTnFlags,CPointpoint):绘制地图函数。达到墙变路、路变墙的目的。(3)保存图片voidCMainFrame::OnSave():保存地图。(4)载入图片voidCMainFrame::OnOpen():载入地图。BOOLCLabyrinthView::OnEraseBkgnd(CDC*pDC)
此文档下载收益归作者所有