




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c语言程序设计题目 走迷宫游戏程序设计 一、 内容 本系统主要实现了走迷宫游戏,执行游戏的时候出现迷宫图案,每次各不相同,但是入口均在左上角,出口在右下角,出入口各有“出”、“入”提示。人物为,“”表示墙,外围为一圈墙,空白部分为可行走的路,使用“上”、“下”、“左”、“右”键操作,当遭遇“墙”时无法前进,操作“”上下左右移动,直至走到出口,游戏胜利。当无法走出迷宫时,按“esc”键即可退出游戏。二、上机环境操作系统:windows xp开发工具:vc6.0 三、函数调用关系图main函数creat函数 paint函数game函数gotoxy函数get_key函数gotox函数 图一:函数调用关系图四、各函数功能说明main函数:主函数;create函数:随机生成迷宫;paint函数:画出迷宫;game函数:开始游戏;gotoxy函数:在文本窗口设置光标;get_key函数:接受按键;五、算法描述或流程图开 始游 戏 界 面画长33 宽31迷宫 开 始 游 戏玩家移动人物是否遇到墙?人物坐标位置不变yn玩家继续移动人物是否到达出口?y游 戏 成 功结 束n 图二:算法流程图六、程序运行效果图图三:游戏开始效果图 图四:到达终点效果图七、总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。大学来说掌握计算机开发技术是十分重要的。在程序设计的过程中,我遇到了不少的问题,请教过学姐或者学长,也请教了老师,最后将程序设计好了。回顾起此次课程设计,我感慨良多,从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,我学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识,我发现c语言是一门有趣的课程,对它产生了很大的兴趣。并且我明白了细心真的很重要,有时候就是因为一点点的小错误,而导致程序无法调试,并且需要花较长的时间去寻找错误。细心很重要的。两个星期前的现在,当听到老师布置给我们的题目时,我们都蒙了,这么难的题目我们怎么会啊,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。上网查资料、去图书馆查,查相关的函数,经过两三天的努力,我把框架弄出来了,可是还有计算难题摆在我的面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我那个急啊,可是急也没有用。我坚持,终于工夫不负有心人,大功告成了。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前学过的知识理解得不够深刻,掌握的不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。感谢老师的悉心指导,使我们能够顺利的完成这次课程设计,使我们收获颇多,谢谢!八、参考文献1李春葆 曾平 喻丹丹.c语言程序设计教程.清华大学出版社,20112李春葆 尹为民 李蓉蓉 蒋晶钰 喻丹丹 安杨.数据结构教程.清华大学出版社,2009九、程序清单#include #include #include #include #include #define height 33 #define width 31 #define wall 1#define road 0#define start 2#define end 3#define esc 5#define up 1#define down 2#define left 3#define right 4int mapheight+2width+2;void gotoxy(int x,int y) /移动坐标coord coord;coord.x=x;coord.y=y;setconsolecursorposition( getstdhandle( std_output_handle ), coord );void create(int x,int y) /随机生成迷宫int c42=0,1,1,0,0,-1,-1,0; /四个方向int i,j,t;/将方向打乱for(i=0;i4;i+)j=rand()%4;t=ci0;ci0=cj0;cj0=t;t=ci1;ci1=cj1;cj1=t; mapxy=road;for(i=0;i4;i+)if(mapx+2*ci0y+2*ci1=wall)mapx+ci0y+ci1=road;create(x+2*ci0,y+2*ci1);int get_key() /接收按键char c;while(c=getch()if(c=27) return esc; /escif(c!=-32)continue;c=getch();if(c=72) return up; /上if(c=80) return down; /下if(c=75) return left; /左if(c=77) return right; /右return 0; void paint(int x,int y) /画迷宫gotoxy(2*y-2,x-1);switch(mapxy)case start:printf(入);break; /画入口case end:printf(出);break; /画出口case wall:printf();break; /画墙case road:printf( );break; /画路void game()int x=2,y=1; /玩家当前位置,刚开始在入口处int c; /用来接收按键while(1)gotoxy(2*y-2,x-1);printf(); /画出玩家当前位置if(mapxy=end) /判断是否到达出口gotoxy(32,30);printf(到达终点,按任意键结束);getch();break;c=get_key();if(c=esc)gotoxy(0,30);break;switch(c)case up: /向上走if(mapx-1y!=wall)paint(x,y);x-;break;case down: /向下走if(mapx+1y!=wall)paint(x,y);x+;break;case left: /向左走if(mapxy-1!=wall)paint(x,y);y-; break;case right: /向右走if(mapxy+1!=wall)paint(x,y);y+; break;int main()system(color 04);int i,j;srand(unsigned)time(null); /初始化随即种子for(i=0;i=height+1;i+)for(j=0;j=width+1;j+)if(i=0|i=height+1|j=0|j=width+1) /初始化迷宫mapij=road;else mapij=wall;create(2*(rand()%(height/2)+1),2*(rand()%(width/2)+1); /从随机一个点开始生成迷宫,该点行列都为偶数for(i=0;i=height+1;i+) /边界处理mapi0=wall; mapiwidth+1=wall; for(j=0;j=width+1;j+) /边界
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产工厂转让合同协议书
- 甲板船合同租赁合同范本
- 食品委托检验协议书范本
- 聘请演员演出的合同范本
- 活动卫生间租赁合同范本
- 私人自建套房买卖协议书
- 申请充电桩物业合同范本
- 铺面加仓储出租合同范本
- 第三方合同非法解除协议
- 网络游戏公司合同协议书
- 工程监理大纲监理方案服务方案
- 蛋白组学二维电泳
- GB/T 3372-2010拖拉机和农业、林业机械用轮辋系列
- GB/T 31848-2015汽车贴膜玻璃贴膜要求
- 一例糖尿病合并脑梗死-护理查房概要
- 2023年宝应县(中小学、幼儿园)教师招聘笔试题库及答案解析
- 公司制成检验记录表
- 全集举一反三课件奥数五年级(数学)
- 钳工实操评分表(凹凸配合)
- 《植物生理学》课件第三章+植物的光合作用
- 石河子大学化学化工学院学院综合测评方案-理学院
评论
0/150
提交评论