《C语言程序设计》走迷宫游戏程序设计.doc

上传人:laozhun 文档编号:2385733 上传时间:2023-02-17 格式:DOC 页数:8 大小:69KB
返回 下载 相关 举报
《C语言程序设计》走迷宫游戏程序设计.doc_第1页
第1页 / 共8页
《C语言程序设计》走迷宫游戏程序设计.doc_第2页
第2页 / 共8页
《C语言程序设计》走迷宫游戏程序设计.doc_第3页
第3页 / 共8页
《C语言程序设计》走迷宫游戏程序设计.doc_第4页
第4页 / 共8页
《C语言程序设计》走迷宫游戏程序设计.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《《C语言程序设计》走迷宫游戏程序设计.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》走迷宫游戏程序设计.doc(8页珍藏版)》请在三一办公上搜索。

1、C语言程序设计题目 走迷宫游戏程序设计 一、 内容 本系统主要实现了走迷宫游戏,执行游戏的时候出现迷宫图案,每次各不相同,但是入口均在左上角,出口在右下角,出入口各有“出”、“入”提示。人物为,“”表示墙,外围为一圈墙,空白部分为可行走的路,使用“上”、“下”、“左”、“右”键操作,当遭遇“墙”时无法前进,操作“”上下左右移动,直至走到出口,游戏胜利。当无法走出迷宫时,按“Esc”键即可退出游戏。二、上机环境操作系统:windows XP开发工具:vc6.0 三、函数调用关系图main函数creat函数 paint函数game函数gotoxy函数get_key函数gotox函数 图一:函数调用

2、关系图四、各函数功能说明main函数:主函数;create函数:随机生成迷宫;paint函数:画出迷宫;game函数:开始游戏;gotoxy函数:在文本窗口设置光标;get_key函数:接受按键;五、算法描述或流程图开 始游 戏 界 面画长33 宽31迷宫 开 始 游 戏玩家移动人物是否遇到墙?人物坐标位置不变YN玩家继续移动人物是否到达出口?Y游 戏 成 功结 束N 图二:算法流程图六、程序运行效果图图三:游戏开始效果图 图四:到达终点效果图七、总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。大学来说掌握计算机开发技术是十分重要的。在程序设计的

3、过程中,我遇到了不少的问题,请教过学姐或者学长,也请教了老师,最后将程序设计好了。回顾起此次课程设计,我感慨良多,从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,我学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识,我发现c语言是一门有趣的课程,对它产生了很大的兴趣。并且我明白了细心真的很重要,有时候就是因为一点点的小错误,而导致程序无法调试,并且需要花较长的时间去寻找错误。细心很重要的。两个星期前的现在,当听到老师布置给我们的题目时,我们都蒙了,这么难的题目我们怎么会啊,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一

4、路肯定是异常的艰苦,但豁出去了。上网查资料、去图书馆查,查相关的函数,经过两三天的努力,我把框架弄出来了,可是还有计算难题摆在我的面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我那个急啊,可是急也没有用。我坚持,终于工夫不负有心人,大功告成了。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,

5、对以前学过的知识理解得不够深刻,掌握的不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。感谢老师的悉心指导,使我们能够顺利的完成这次课程设计,使我们收获颇多,谢谢!八、参考文献1李春葆 曾平 喻丹丹.C语言程序设计教程.清华大学出版社,20112李春葆 尹为民 李蓉蓉 蒋晶钰 喻丹丹 安杨.数据结构教程.清华大学出版社,2009九、程序清单#include #include #include #include #include #define Height 33 #define Width 31 #define Wall 1#define Road 0#define

6、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;

7、 /四个方向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; /上i

8、f(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; /玩家当前位置,刚开始在入口

9、处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(

10、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+) /边界处理map0j=Wall; mapHeight+1j=Wall;map21=Start; /给定入口mapHeight-1Width=End; /给定出口for(i=1;i=Height;i+)for(j=1;j=Width;j+) /画出迷宫paint(i,j);game(); /开始游戏getch();return 0;

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号