收藏 分享(赏)

《数据结构课程设计》走迷宫游戏.doc

上传人:精品资料 文档编号:8397821 上传时间:2019-06-24 格式:DOC 页数:16 大小:439.50KB
下载 相关 举报
《数据结构课程设计》走迷宫游戏.doc_第1页
第1页 / 共16页
《数据结构课程设计》走迷宫游戏.doc_第2页
第2页 / 共16页
《数据结构课程设计》走迷宫游戏.doc_第3页
第3页 / 共16页
《数据结构课程设计》走迷宫游戏.doc_第4页
第4页 / 共16页
《数据结构课程设计》走迷宫游戏.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、信 息 工 程 学 院课程设计报告课程名称 数据结构 课题名称 走迷宫游戏 专 业 班 级 学 号姓 名 联系方式 指导教师 2015 年 12 月 27 日目 录1、数据结构课程设 计任 务书 1.1、题目 1.2、要求 2、总体设 计 2.1、设 计思路及总体组成框架 2.2、 操作 流程图 3、详细设计 3.1、程序中所采用的数据 结构及存储结构的说明 3.2、函数功能模块说明 3.3、各函数 的调用关系 .4、调试与测试: 4.1、调试方法与步骤: 4.2、测试结果的分析与 讨论: 4.3、测试过程中遇到的主要问题及采取的解决措施: 6、源程序清 单 7、数据结构课程设计 总结 8、参

2、考文献 第 页1、数据结构课程设计任务书1.1 题目程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。1.2、要求1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;2) 迷宫的墙足够结实,老鼠不能穿墙而过;3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;5) 找出走出迷宫的所有路径。利用序列化功能实现迷宫地图文件的存盘和读出等功能 2、总体设计2.1、设计思路及总体组成框架1、思路(1).利用 mfc 可以把迷宫

3、地图以及老鼠形象可变的导出来。(2).需要有墙有路,通过把迷宫地图划分成一个一个小方块,通过一个数组的值来判断是墙是路。 (1 表示墙 0 表示路)(3).利用栈,来存入当前位置,然后判断下一位置,是否有路,存入栈中或出栈。(4).把每个数组元素对应一个按钮根据点击按钮,改变数组的值从而改变墙和路的转化。(5).键盘接受字符,根据字符调用不同的图片,达到老鼠超前走的效果。2、数据结构本程序运用的逻辑结构是线性和存储结构为顺序。之所以采用本结构是因为,迷宫主要用到栈来储存当前位置,和判断下一位置,来入栈。抽象数据类型线性表的定义如下:ADT Stack数据对象:D=a i| ai ElemSet

4、,i=1,2,3,n,n0数据关系:R1=| ai-1,ai D,i=1,2,3,,n基本操作:Initstack( 第一个参数为对应时器的代号。在一个程序中,可能有多个SetTimer,在Ontime响应时,可以根据第一个参数来确定是哪一个记时器所引起的事件。第二个参数用于设置时间。 第三个参数为一个回调函数的指针,用NULL的话,系统会把SetTimer产生的消息加入消息队列中。调用了一下三个函数信息,来显示时间。m_wndStatusBar.CommandToIndex(IDS_LASTTIME); /按规定宽度显示m_wndStatusBar.SetPaneInfo(0,IDS_LAS

5、TTIME,SBPS_POPOUT,150);/剩余时间凸出来m_wndStatusBar.SetPaneText(1,str2);/在窗格中显示文本信息。void CMainFrame:OnTimer(UINT nIDEvent):根据时间判断老鼠是否饿死。void CMainFrame:OnSettime():设置时间。(8)音效设置void CMainFrame:OnMusicOn():音乐来。void CMainFrame:OnMusicOff():音乐关。(9)游戏退出void CMainFrame:OnAppExit():void CMainFrame:OnClose():退出游戏

6、,弹出对话框。(10)框架BOOL CMainFrame:PreCreateWindow(CREATESTRUCTDataType;typedef structDataType dataMAXSIZE;int top; Seqstack;typedef structint x;int y;item;2主函数和其他函数的伪码算法;(1)、BOOL CLabyrinthView:OnEraseBkgnd(CDC* pDC) extern int wall1317;/定义一个控制迷宫的数组获得客户区句柄;CBitmap bmp4;/创建位图for(int j=0;jinit_Seqstack();/

7、初始化while(!csk-Empty_Seqstack(s) /不空运行 while(dx+1 y右 1-x y+1下 2-x-1 y左3-x y-1上if(wallij=0|wallij=2)/试探可通/刷白走过的路temp.x=j;temp.y=i;/将试探给要压栈的temp/找老鼠行走方向if(temp.di=0) di=2;if(temp.di=1) di=0;if(temp.di=2) di=1;if(temp.di=3) di=3;mdc-SelectObject(bitmapdiindex+);/选择各方向的图csk-Push_Seqstack(s,temp);wallyx=-

8、1;/已经贴图的/if(wallyx=2)if(x=16elsed+; (4)void CLabyrinthView:OnLButtonDown(UINT nFlags, CPoint point) if(m_selfmap=1)/获取dc指针/获取鼠标坐标,转换为墙的xy坐标,存入数组。int j=(int)point.x/50;int k=(int)point.y/50;/路变墙,墙变路switch(wallkj)case 1:/贴路的图片case 0:第 页/贴墙的图片(5)void CMainFrame:OnTimer(UINT nIDEvent) if(m_lasttime)o“);

9、OnOpen();else if(m_timestatus=1)/时间消耗CFrameWnd:OnTimer(nIDEvent);(6)void CMainFrame:OnSave() /用于保存地图extern int wall1317;char ch1317;for(int i=0;i13;i+)for(int j=0;j17;j+)chij=wallij+48;/保存文件2种方式1:asc2码 2:二进制码/数组中有2、3所以用asc码FILE *pFile=fopen(“Gamemap.txt“,“w“);fwrite(ch,1,222,pFile);fclose(pFile);(7)

10、void CMainFrame:OnSettime() /设置游戏时间菜单用于创建一个对话框类,并传入输入值,/并重画状态栏CSetTime dlg;if(IDOK=dlg.DoModal()m_settime=dlg.m_time;m_lasttime=m_settime;CString str1,str2;str1.Format(“剩余时间:%d“,m_lasttime);str2.Format(“规定时间:%d“,m_settime);CClientDC dc(this);m_wndStatusBar.CommandToIndex(IDS_LASTTIME);m_wndStatusBar

11、.SetPaneInfo(第 页0,IDS_LASTTIME,SBPS_NORMAL,150);m_wndStatusBar.SetPaneText(0,str1);m_wndStatusBar.CommandToIndex(IDS_SETTIME);m_wndStatusBar.SetPaneInfo(1,IDS_SETTIME,SBPS_NORMAL,150);m_wndStatusBar.SetPaneText(1,str2);Invalidate();7、数据结构课程设计总结数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构

12、成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。 数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。在刚开始的几次调试中曾经出现过不能运行、不能正确输出结果、不能正常显示等等各种问题。经过我的努力及同学的帮助,这些问题最终克服,并且使程序的功能也得到了一定的完善。现在它能人性化的展现小老鼠的迷宫之旅。在这次设计过程中,不仅复习课本上所学知识,还通过查

13、资料、问同学学到了课本上没有的知识。从而启发我,要想写好程序,在写好课本知识的同时还需要多读和专业有关的一些书籍,同时还需要多动脑子,尽量把所学的知识综合起来应用,力争写出完美的程序。除此之外,我还得到了一些有用的教训:写程序时必须要细心,不能输错一个字符标点,就连全角半角也得注意。在修改时要有耐心,编译出错后必须逐个错误去改正,绝不能心急浮躁,否则修改之后还会有新的错误。8、参考文献书籍:1. C 语言程序设计(第三版) , 出版社:高等教育出版社, 主编:廖雷,出版日期:2009 年 6 月2. 数据结构(c 语言描述) ,出版社:中国水利水电出版社,主编:马秋菊出版日期:2006 年大话数据结构 ,出版社:清华大学出版社,主编,程杰,出版日期:2011 年 6 月3. http:/ 百度知道

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报