《C语言程序设计》
题目
内容二、上机环境
三、函数调用关系图
图一:函数调用关系图
四、各函数功能说明get_key函数:接受按键;
五、算法描述或流程图
图二:算法流程图
六、程序运行效果图
图三:游戏开始效果图
图四:到达终点效果图
七、
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。大学来说掌握计算机开发技术是十分重要的。在程序设计的过程中,我遇到了不少的问题,请教过学姐或者学长,也请教了老师,最后将程序设计好了。回顾起此次课程设计,我感慨良多,从拿到题目到完成整个编程,从理论到实践,在整整两个星期的日子里,我学到了很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识,我发现c语言是一门有趣的课程,对它产生了很大的兴趣。并且我明白了细心真的很重要,有时候就是因为一点点的小错误,而导致程序无法调试,并且需要花较长的时间去寻找错误。细心很重要的。
两个星期前的现在,当听到老师布置给我们的题目时,我们都蒙了,这么难的题目我们怎么会啊,我们只能尽我们自己最大的努力把程序给写出来,虽然知道这一路肯定是异常的艰苦,但豁出去了。上网查资料去图书馆查,查相关的函数,经过两三天的努力,我把框架弄出来了,可是还有计算难题摆在我面前,真的是个难题,自从把框架弄好了以后就没有进展了,眼看一个星期快过去了,我那个急啊,可是急也没有用。我坚持,终于工夫不负有心人,大功告八、参考文献九、程序清单
#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 4
int map[Height+2][Width+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 c[4][2]={0,1,1,0,0,-1,-1,0}; //四个方向
int i,j,t;
//将方向打乱
for(i=0;i<4;i++)
{
j=rand()%4;
t=c[i][0];c[i][0]=c[j][0];c[j][0]=t;
t=c[i][1];c[i][1]=c[j][1];c[j][1]=t; }
map[x][y]=Road;
for(i=0;i<4;i++)
if(map[x+2*c[i][0]][y+2*c[i][1]]==Wall)
{
map[x+c[i][0]][y+c[i][1]]=Road;
create(x+2*c[i][0],y+2*c[i][1]);
}
}
int get_key() //接收按键
{
char c;
while(c=getch())
{
if(c==27) return Esc; //Esc
if(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(map[x][y])
{
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