贪吃蛇游戏设计 论文及源代码

上传人:s9****2 文档编号:436020062 上传时间:2022-09-18 格式:DOC 页数:23 大小:604KB
返回 下载 相关 举报
贪吃蛇游戏设计 论文及源代码_第1页
第1页 / 共23页
贪吃蛇游戏设计 论文及源代码_第2页
第2页 / 共23页
贪吃蛇游戏设计 论文及源代码_第3页
第3页 / 共23页
贪吃蛇游戏设计 论文及源代码_第4页
第4页 / 共23页
贪吃蛇游戏设计 论文及源代码_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《贪吃蛇游戏设计 论文及源代码》由会员分享,可在线阅读,更多相关《贪吃蛇游戏设计 论文及源代码(23页珍藏版)》请在金锄头文库上搜索。

1、本科生课程设计报告(2008)课程设计报告贪吃蛇游戏设计专业电子信息工程学生姓名 班级B电子062学号 指导教师 完成日期2008年8月30日贪吃蛇游戏设计摘要:本设计主要围绕贪吃蛇游戏展开。众所周知,贪吃蛇游戏一直以来是比较流行的。传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,而现在的贪吃蛇游戏已经发展的相当好;具有更多的功能和友好的界面。例如,最近流行的免费的3D版的贪吃蛇游戏,界面相当的美观,有很强的立体效果,真实感更强,食物也为立体的且颜色绚丽。在3D版贪吃蛇游戏里面,墙壁是真实的墙壁,障碍物比较多,如树、土丘等。此外,其功能更多更强,可以选择难度。不过,总而言之,3D版

2、与传统的贪吃蛇游戏有共性,即娱乐性与益智性。这些也是贪吃蛇游戏的优点。 本人因水平有限,只能设计简单的贪吃蛇游戏。不过,在功能上,比传统贪吃蛇游戏更丰富。蛇可以反向运动,操作起来,显得更为灵活。界面的颜色选用绿色,不易使眼睛疲劳。关键词:3D版;传统;灵活;1目 录1、 概述1.1、用TC设计程序的方法1.2、简要说明2、设计要求3、系统分析与模块设计3.1、算法设计3.2、数据结构3.3、模块设计3.4、模块枝干图4、程序流程图4.1、图形驱动4.2、开始画面4.3、显示食物4.4、蛇向前移动4.5、判蛇死4.6、吃到食物后处理4.7、判蛇反向移动4.8、游戏结束4.9、图形结束5、程序设计

3、及关键源代码6、运行结果分析7、实习心得1贪吃蛇游戏的设计1 .概 述 1.1、用TC设计程序的方法首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。模块的数量不宜太多,也不宜太少,要使每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图了。流程图要简单,容易理解,多用中文。不宜写过长的代码,增加理解难度。流程图与模块枝干图均可用绘图软件绘制,可适当加些背景色,用以区分。此外,流程图应容易转换成代码。绘制好了流程图,就要编写代码了。直接在TC环境里输入代码,然后运行测试,检查错误,最终,将设计

4、出可行的程序。1.2、简要说明 我设计的贪吃蛇游戏具有很多独特性。例如,墙壁不用实体,而用中空的墙,颜色为绿色,显得更美观,且不易使眼疲劳。操作上,做了些简化,游戏开始时便可以自动运行,且速度较快,属中等难度。玩游戏的过程相当简单,只需按键盘上的上下左右方向键,便可改变蛇的行进方向。食物随机产生。贪吃蛇吃到一个食物后便得到10分。得分显示在左上角。当蛇撞到墙壁或自己时,蛇死,游戏结束,输出得分。2.设计要求 外观为矩形,食物随机产生,添加注释,统计得分、每吃到一个食物获得10分。蛇碰到自己或墙壁,游戏均结束。游戏结束时输出得分。画出模块枝干图与每个模块的程序流程图。修改某些代码,改变其外观及功

5、能。游戏操作应尽量简单。界面美观,让人看了觉得舒服。3、系统分析与模块设计3.1、算法设计 玩游戏过程采用递归算法,由WHILE(1)控制循环过程,可使游戏重复玩,在蛇死之前不停的玩。判断蛇死的算法是通过判断蛇有没有碰到自己及墙壁。使蛇向前移动采用递归算法,通过递归将蛇的每一节依次向前移动,横坐标与纵坐标依次向前赋值,从而达到使蛇前移的目的。蛇的前进方向通过IF结构判断。3.2、数据结构 蛇与食物信息分别用两个结构体存储与表示。将食物的横坐标X、纵坐标Y和判断是否要出现食物的变量YES分别作为食物的结构体的成员。蛇的横坐标数组XN,纵坐标数组YN,蛇的节数NODE,蛇的移动方向DIRECTIO

6、N、蛇的生命LIFE分别作为蛇的结构体的成员。结构体内每个成员的存储类型均为整型。3.3、模块设计模块应具有高内聚性,低耦合性。这样,程序运行才更稳定,效率更高。据功能将贪吃蛇游戏划分成四个大模块,九个小模块。每个模块均具有自己的功能,而且,比较容易画出各个模块的流程图。3.4、模块枝干图简要说明:图形驱动即完成初始化图形系统功能;开始画面模块的主要作用是根据设置绘制出玩游戏区域四周的墙壁;玩游戏的过程是游戏此游戏程序的核心,又可细分为好多小的功能模块;其中,显示食物模块仅完成显示食物功能;蛇前移模块即通过递归算法实现蛇的向某方向移动;判蛇死模块的功能是通过判断蛇是否碰到自己或墙壁来判断蛇有没

7、有死亡。吃到食物后小模块只有蛇吃到食物后才起作用。即当蛇吃到食物后,蛇自身延长一节并绘出蛇,同时加10分。通过键盘操控来玩游戏主要由判反向移动模块完成,即当蛇不是反向移动时,按照键盘上方向键指示移动。游戏结束模块功能简单,仅完成输出得分与提示语功能。最后图形结束模块完成关闭图形功能。4、程序流程图4.1、图形驱动 4.2、开始画面 4.3、 显示食物 4.4、 蛇向前移动 4.5、 判蛇死 4.6、 吃到食物后处理 4.7、 判蛇反向移动 4.8、 游戏结束 4.9、 图形结束 5、程序设计及关键源代码 定义上下左右控制方向:#define LEFT 0x4b00#define RIGHT 0

8、x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b设定游戏速度:int gamespeed=60000;用结构体定义食物与蛇:struct Food int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/food;/*食物的结构体*/struct Snake int xN; int yN; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/snake;主函数:void main(v

9、oid) Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/图形驱动:void Init(void) int gd=DETECT,gm; initgraph(&gd,&gm,c:tc); cleardevice();开始画面,左上角坐标为(50,40),右下角坐标为(620,460)的围墙:void DrawK(void) setcolor(10);/*绿色*/ setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i=610;i+=10)/*画围墙*/ rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ for(i=40;i0;i-)/*蛇的每个环节前移动,关键算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,

展开阅读全文
相关资源
相关搜索

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

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