《贪吃蛇游戏实习报告.doc
文本预览下载声明
课程设计报告
贪吃蛇游戏设计
专业 电子信息工程 学生姓名 杜 运 福 班级 B电子062 学号 0610620224 指导教师 曹 妍 完成日期 2008年8月30日
贪吃蛇游戏设计
摘要:本设计主要围绕贪吃蛇游戏展开。众所周知,贪吃蛇游戏一直以来是比较流行的。传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,while(1)控制循环过程,可使游戏重复玩,在蛇死之前不停的玩。判断蛇死的算法是通过判断蛇有没有碰到自己及墙壁。使蛇向前移动采用递归算法,通过递归将蛇的每一节依次向前移动,横坐标与纵坐标依次向前赋值,从而达到使蛇前移的目的。蛇的前进方向通过if结构判断。
3.2、数据结构
蛇与食物信息分别用两个结构体存储与表示。将食物的横坐标x、纵坐标y和判断是否要出现食物的变量yes分别作为食物的结构体的成员。蛇的横坐标数组x[n],纵坐标数组y[n],蛇的节数node,蛇的移动方向direction、蛇的生命life分别作为蛇的结构体的成员。结构体内每个成员的存储类型均为整型。
3.3、模块设计
模块应具有高内聚性,低耦合性。这样,程序运行才更稳定,效率更高。
据功能将贪吃蛇游戏划分成四个大模块,九个小模块。每个模块均具有自己的功能,而且,比较容易画出各个模块的流程图。
3.4、模块枝干图
简要说明:图形驱动即完成初始化图形系统功能;开始画面模块的主要作用是根据设置绘制出玩游戏区域四周的墙壁;玩游戏的过程是游戏此游戏程序的核心,又可细分为好多小的功能模块;其中,显示食物模块仅完成显示食物功能;蛇前移模块即通过递归算法实现蛇的向某方向移动;判蛇死模块的功能是通过判断蛇是否碰到自己或墙壁来判断蛇有没有死亡。吃到食物后小模块只有蛇吃到食物后才起作用。即当蛇吃到食物后,蛇自身延长一节并绘出蛇,同时加10分。通过键盘操控来玩游戏主要由判反向移动模块完成,即当蛇不是反向移动时,按照键盘上方向键指示移动。游戏结束模块功能简单,仅完成输出得分与提示语功能。最后图形结束模块完成关闭图形功能。
4、程序流程图
4.1、图形驱动
4.2、开始画面
显示食物
蛇向前移动
判蛇死
吃到食物后处理
判蛇反向移动
游戏结束
图形结束
5、程序设计及关键源代码
定义上下左右控制方向:
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
设定游戏速度:
int gamespeed=60000;
用结构体定义食物与蛇:
struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake
{
int x[N];
int y[N];
int node;
显示全部