ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:149.41KB ,
资源ID:644179      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/644179.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++迷宫游戏实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++迷宫游戏实验报告.docx

1、c+迷宫游戏实验报告1、问题描述程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向健操纵老鼠在规定的时间走到粮仓处。基本要求:(1)老鼠形象可以辨认,可用键盘操纵老鼠上下左右移动;(2)迷宫的墙足够结实,老鼠不能穿墙而过;(3)正确检测结果,若老鼠在规定时间走到粮仓处,提示成功,并给出一条路径,否则提示失败。提高要求:(1)添加编辑迷宫功能,可修改当前迷宫,修改容:墙变路、路变墙;(2)增加闯关和计分功能;(3)找出走出迷宫的所有路径,以及最短路径。 2需求分析软件的基本功能:通过键盘控制光标移动实现老鼠在迷宫中的行走、全部路径和最短路径的

2、显示、自定义地图(墙变路,路变墙)。在老鼠闯关只能在地图显示是路的地方行走,不能穿墙,有计时功能,当时间结束时若没有到达指定地点,显示game over,查看排行榜,游戏结束,若成功到达指定位置,进去下一关,直到所有关结束,程序结束;。输入/输出形式:用户可以通过控制台,根据输入提示。输入形式:1方向键、空格键、enter键输出形式:1输出地图菜单。2输出地图3输出是否成功信息、输出排行榜 3概要设计(1)主程序流程图1:主程序流程图(3)模块调用关系:本程序中函数包括:main函数,menu函数,menu2函数,mouse类函数,path类函数,change函数, 函数调用关系如下:图2:函

3、数调用关系4详细设计(1)实现概要设计的数据类型:Mouse类class mouseprivate: int m_x; int m_y; time_t begin ,stop;public: int move_up(int mapxy,int end);/向上移动 int move_down(int mapxy,int end);/向下移动 int move_left(int mapxy,int end);/左 int move_right(int mapxy,int end);/右 void initialize(int mapxy,int end) m_x=S;m_y=S;mapenden

4、d=9; void print(int mapxy,int end);/打印地图 void operate(int mapxy,int end,char name30);/操作 void success(); void charts(char Name30);/排行榜;Path类class Pathpublic: Path()pa=1000; void path(int i,int j,int mapxy,int &t,int end); int check(int i, int j, int d, int mapxy,int end); void Print2(int mapxy, int

5、&t,int end);/打印每条路径 void allpath(int s,int e,int mapxy,int &t,int end);private: int pa;(2)主程序以及其它模块的算法描述:主函数具体代码:int main() menu(); file(1);v: if(menu2(1,11)=1)/1,返回当前关卡菜单,0,进入下一关卡 goto v;v2: file(2); if(menu2(2,12)=1)goto v2;v3: file(3); if(menu2(3,13)=1)goto v3;v4: file(4); if(menu2(4,15)=1)goto v

6、4;v5: file(5); if(menu2(5,18)=1)goto v5; final(); return 0;Menu2 函数具体代码int menu2(int t,int e) mouse mickey; Path path; int p=0; system(cls); Loc1(15,3); coutName; Loc1(15,5); cout第t关endl; cout1) sel-; if(sel=1) a(); else if(sel=2) b(); else if(sel=3) c(); else if(sel=4) d(); else if(sel=5) menue();

7、break; case 80: /下移 if(sel6) sel+; if(sel=1) a(); else if(sel=2) b(); else if(sel=3) c(); else if(sel=4) d(); else if(sel=5) menue(); break; case 13:/回车确定选择 if(sel=1)/开始闯关 mickey.operate(MAP,e,Name); return 0; else if(sel=2)/查看所有路径和最短路径 system(cls); path.allpath(9,9,MAP,p,e); return 1; else if(sel=3

8、)/更改地图 change(2*(18-e),18-e,e); return 1; else if(sel=4)/查看排名 mickey.charts(Name); return 1; else if(sel=5)/退出 exit(0); 这个函数主要调用了各实现功能函数。其步骤为:用户进入菜单选项,方向键控制选中选项移动,enter进入选中选项。(3)其它模块的算法描述 控制老鼠移动函数功能:方向键移动老鼠。(上方向键进入Move_up函数)if(mapm_x-1m_y=1)return 0;else if(mapm_x-1m_y=9) mapm_xm_y=0; m_x-; mapm_xm_

9、y=3; return -1;else mapm_xm_y=0; Y=-1; X=0; Loc(2*m_y,m_x); cout ; Loc(2*m_y+X,m_x+Y); cout; m_x-; mapm_xm_y=3; 求全部路径功能:输出迷宫所有路径int dir42=-1,0,1,0,0,-1,0, 1;/上下左右 int d,tx,ty,p; for(d=0;d4;d+) if(check(i,j,d,map,end)=1)/检查是否可以走 tx=i+dird0; ty=j+dird1; p=maptxty;/记录状态 maptxty=4;/标记路径 mapendend=0; if(

10、tx=end&ty=end)/终点 t+ ;/路径条数加一 Print2(map,t,end);/终点 else path(tx,ty,map,t,end); maptxty=p; 更改地图功能 char key; Loc2(sx,sy); while(1) key=getch(); switch(key) case 72: Loc2(sx,-sy); break; case 80: Loc2(sx,sy+); break; case 75: Loc2(sx-=2,sy); break; case 77: Loc2(sx+=2,sy); break; case 32: if(MAPsysx/2

11、=1) MAPsysx/2=0; Loc1(sx,sy); cout ; Loc1(sx,sy); else if(MAPsysx/2=0) MAPsysx/2=1; Loc1(sx,sy); cout; Loc1(sx,sy); break; case 13: return ; default: break;5、编码与调试分析1编码与调试过程中遇到的问题及解决办法:【问题一】通过清屏打印地图实现老鼠移动,屏幕闪烁严重解决办法:分析得知,通过移动光标打印老鼠位置,可以解决屏闪问题解决此问题的核心代码: COORD pos = a,b; HANDLE hOut = GetStdHandle(ST

12、D_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut, pos); 2.待解决问题:时间不能实现连续变化3、使用说明进入菜单,根据提示进行选择:方向键选择,enter键进入4、测试结果(1)进入页面(2)菜单页面(3)闯关(4)打印路径 (5)自定义地图 (6)查看排行榜 8、自学知识在课程设计过程中,特别是在代码编写和调试的过程中,自学了很多新的知识。例如Loc()函数,包含于表头文件 #include 。 其功能是: 移动光标位置,更改控制台输出颜色。还有一个知识点是清屏函数,它也是包含于头文件中的, 使用形式为system(CLS)。主要功能就是清空屏幕。9、课程设计心得体会 课程设计是一次可以让我们所学的理论与实际

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1