(完整word版)走迷宫游戏程序设计.docx
- 格式:docx
- 大小:111.22 KB
- 文档页数:8
《C 语言程序设计》
题目走迷宫游戏程序设计
一、内容
本系统主要实现了走迷宫游戏,执行游戏的时候出现迷宫图案,每次各不相同,但是入
口均在左上角,出口在右下角,出入口各有“出”、“入”提示。人物为㊣,“█”表示墙,外围为一圈墙,空白部分为可行走的路,使用“上”、“下”、“左”、“右”键操作㊣,当遭遇“墙”时无法前进,操作“█”上下左右移动,直至走到出口,游戏胜利。当无法走出迷宫
时,按“ Esc”键即可退出游戏。
二、上机环境
操作系统: windows XP
开发工具: vc6.0
三、函数调用关系图
main 函数
creat 函数paint 函数game 函数gotoxy 函数get_key函数gotox 函数
图一:函数调用关系图
四、各函数功能说明
main 函数:主函数;
create函数:随机生成迷宫;
paint函数:画出迷宫;
game函数:开始游戏;
gotoxy 函数:在文本窗口设置光标;
get_key函数:接受按键;
五、算法描述或流程图
开始
游戏界面
画长 33 宽 31
迷宫玩家继续移动人物
开始游戏
N
玩家移动人物
是否到达
口?
出N Y
是否遇
到墙?游戏成功
Y
结束人物坐标位置不变
图二:算法流程图
六、程序运行效果图
图三:游戏开始效果图
图四:到达终点效果图
七、总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践
能力的重要环节。大学来说掌握计算机开发技术是十分重要的。在程序设计的过程中,我遇到了不少的问题,请教过学姐或者学长,也请教了老师,最后将程序设计好了。回顾起此次
课程设计,我感慨良多,从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日
子里,我学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识,我发现 c 语言是一门有趣的课程,对它产生了很大的兴趣。并且我明白了细心真的很重要,有时候就是因为一点点的小错误,而导致程序无法调试,并且需要花较长的时间去寻找错误。细心很重要的。
两个星期前的现在,当听到老师布置给我们的题目时,我们都蒙了,这么难的题目我们怎么会啊,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的
艰苦,但豁出去了。上网查资料、去图书馆查,查相关的函数,经过两三天的努力,我把框
架弄出来了,可是还有计算难题摆在我的面前,真的是个难题,自从把框架弄好了以后就没
有进展了,眼看一个星期快过去了,我那个急啊,可是急也没有用。我坚持,终于工夫不负
有心人,大功告成了。
通次程使我懂得了理与相合是很重要的,只有理知是不
的,只有把所学的理知和践相合起来,从理中得出,才能真正社会服,
从而提高自己的手能力和独立思考能力。在的程中遇到,可以得是困重重,竟是第一次做,免会遇到各种各的,同在的程中了自己的
不足之,以前学的知理解得不深刻,掌握的不牢固,比如构体⋯⋯通
次程之后,一定把以前所学的知重新温故。
感老的悉心指,使我能利的完成次程,使我收多,!
八、参考文献
[1]李春葆曾平丹丹 .C 言程序教程 . 清大学出版社, 2011
[2]李春葆尹民李蓉蓉蒋晶丹丹安 . 数据构教程 . 清大学出版社, 2009
九、程序清单
#include
#include
#include
#include
#include
#define Height 33printf(" 到达终点,按任意键结束 ");
#define Width 31getch();
#define Wall 1break;
#define Road 0}
#define Start 2c=get_key();
#define End 3if(c==Esc)
#define Esc 5{
#define Up 1gotoxy(0,30);
#define Down 2break;
#define Left 3}
#define Right 4switch(c)
int map[Height+2][Width+2];{
void gotoxy(int x,int y) //移动坐标case Up: //向上走
{if(map[x-1][y]!=Wall)
COORD coord;{
coord.X=x;paint(x,y);
coord.Y=y;x--;
SetConsoleCursorPosition(GetStdHandle( ST}
D_OUTPUT_HANDLE ), coord );break;
}case Down: //向下走
void create(int x,int y) //随机生成迷宫if(map[x+1][y]!=Wall)
{{
int c[4][2]={0,1,1,0,0,-1,-1,0}; //四个方向paint(x,y);
int i,j,t;x++;