(完整word版)走迷宫游戏程序设计.docx

  • 格式:docx
  • 大小:111.22 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《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 gotoxy(2*y-2,x-1);

#include printf(" ㊣"); //画出玩家当前位置

#include if(map[x][y]==End) //判断是否到达出口

#include {

#include gotoxy(32,30);

#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++;