游戏程序的设计实验报告

上传人:xmg****18 文档编号:120389903 上传时间:2020-02-06 格式:DOC 页数:27 大小:71KB
返回 下载 相关 举报
游戏程序的设计实验报告_第1页
第1页 / 共27页
游戏程序的设计实验报告_第2页
第2页 / 共27页
游戏程序的设计实验报告_第3页
第3页 / 共27页
游戏程序的设计实验报告_第4页
第4页 / 共27页
游戏程序的设计实验报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《游戏程序的设计实验报告》由会员分享,可在线阅读,更多相关《游戏程序的设计实验报告(27页珍藏版)》请在金锄头文库上搜索。

1、下载可编辑窗体顶端华中师范大学计算机科学系游戏设计基础实验报告 姓名学号: 指导老师: 实验课题: 贪吃蛇游戏的实现 交报告日期:2012/5/24 .专业.整理. 目录 摘要.61、设计要求.72、所用仪器设备.73、具体设计过程.8.3.1、程序功能.83.2设计思想.83.3设计的具体实现.8.3.4 总体流程图.143.5、程序代码编写及注释.153.6调试问题及解决方法.213.7调试结果.22.4设计心得体会25.5、参考文献.26摘 要编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向

2、上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。作为一个完整的程序,尤其是一个完整的游戏,必须考虑人机交流与用户体验。游戏的界面不能太丑,更不能连个简单的界面都没有。游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。游戏的美观是一方面,游戏的内在素质是另一方面。一个游戏的优劣,最终由玩家决定。在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。关键词 贪吃蛇 流程图 c语言

3、 源程序 turbo C 贪吃蛇游戏程序设计1、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。(1)收集资料,分析课题,分解问题,形成总体设计思路;(2)深入分析各个小问题,列出大纲,编写各部分程序模块;(3)对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(4)上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(5)完成课程设计报告,并进行答辩C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率

4、高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。作为一位当代的大学生更要很好的利用它,学好一门设计语言,实现学以至用。 制作C程序报告,可以巩固和加深自己对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。通过游戏程序的设计训练可以提高自己的基本技能,更好地掌握字符串的表示方法和字符串函数的功能、Tc图形操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高自己编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高运用C语言解决实际问题的能力,巩固C语言语法规

5、则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。2、所用仪器设备1、能正常工作的计算机一台; 2、WindowsXP;3、TC程序; 4、Microsoft Word2003;3、具体设计过程3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体叉蛇头撞倒自己身体游戏结束。3.2 设计思想程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩

6、形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。3.3设计的具体实现(1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#define N 200#i

7、nclude /*图形头文件*/#include /*包含rand等函数*/#include /*包含bios函数*/#define LEFT 0x4b00/*光标左键值*/#define RIGHT 0x4d00/*光标右键值*/#define DOWN 0x5000/*光标下键值*/#define UP 0x4800/*光标上键值*/#define ESC 0x011b/*ESC的ASCII码*/int i,key;/*图形坐标变量及按键变量*/int score=0;/*得分*/int gamespeed=10000;/*游戏速度自己调整*/struct Food int x;/*食物的

8、横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/food;/*食物的结构体*/ struct Snake int x;/*蛇的横坐标*/ int y;/*蛇的纵坐标*/ int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*画界面函数*/void GameOver(void);/*结束游戏*/ void GamePlay(

9、void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*/ void main(void)/*主函数*/(2)主函数main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序void main(void)/*主函数*/ Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/void Init(vo

10、id)/*图形驱动*/ int gd=DETECT,gm; initgraph(&gd,&gm,c:tc); /*第一个参数表示图形适配器的类型,第二个为在该类型下图形的显示模式,第三个参数指定驱动程序所在目录。*/ cleardevice();(3) 画界面函数DrawK( ) 主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。void DrawK(void)/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/ setbkcolor(0);/*设置当前背景颜色*/ setcolor(YEL

11、LOW);/*设置当前画线颜色*/ setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i=600;i+=10)/*画围墙*/ rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ for(i=40;i=450;i+=10) rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ (4)游戏具体过程函数GamePlay( ) 这是游戏的主要组成部分,他采用将前一节的坐标赋给后一节,用背

12、景颜色将最后节去除,当蛇头的坐标与食物的坐标相等时,表示食物被吃掉了。void GamePlay(void)/*玩游戏具体过程*/ randomize();/*随机数发生器*/ food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/ snake.life=0;/*活着*/ snake.direction=1;/*方向往右*/ snake.x0=100;snake.y0=100;/*蛇头*/ snake.x1=110;snake.y1=100;/*蛇第二节*/ snake.node=2;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ES

13、C键结束*/ while(!kbhit()/*在没有按键的情况下,蛇自己移动身体*/ if(food.yes=1)/*需要出现新食物*/ food.x=rand()%400+60; food.y=rand()%350+60; while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ food.x+; while(food.y%10!=0) food.y+; food.yes=0;/*画面上有食物了*/ if(food.yes=0)/*画面上有食物了就要显示*/ setcolor(GREEN);/*食物的颜色*/ rectangle(food.x,food.y,food.x+10,f

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号