语言贪吃蛇程序设计说明书

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

贪吃蛇游戏程序设计说明书

题目:贪吃蛇游戏

学校:

系别:

专业

班级:

姓名:

学号:

指导老师:

日期:

一、设计题目:

贪吃蛇是一款经典的休闲游戏,一条蛇在密闭的围墙内,随机出现一个食物,通过控制方向键操作小蛇不停的朝着食物前进,直到吃掉食物。每吃一个食物,小蛇都会长长一截,随之难度增大;当小蛇头撞到墙或自己时,小蛇死亡。

二、功能设计:

本游戏要求实现以下几个功能:

(1)用上、下、左、右键控制游戏区蛇的运动方向,使之吃食而使身体变长;

(2)用户可以调节蛇的运行速度来选择不同的难度;

(3)游戏分多个难度级别;

(4)用户可自选颜色;

(5)记录成绩前五名的游戏玩家;

(6)增加背景音乐;

(7)提高障碍物和游戏级别。

三、程序模块图:

贪吃蛇游戏

初始化

四、 算法流程图:

是 否

否 是

开 始

初始化界面和蛇身

放置食物

获取按键

开始运动

碰到边界

蛇吃到食 蛇长大

蛇死亡

继续

结束

五、函数原型与功能

1.主函数:void main()

启动程序,触动其他函数。

2.初始化:void init ()

设置背景框大小、蛇体初始值,随机产生食物。

3.随机产生食物:void setfoodcrd()

设置食物生成坐标,0表示食物被吃。

4.画食物:void showfood()

用矩形框来画食物

5.画蛇:void showsnake()

根据蛇的坐标和节数,循环用矩形框来画蛇。

6.蛇移动:void snakemove()

根据按键,重设坐标

7.改变蛇的方向:void changeskdir()

响应用户的运动方向

8.判断蛇是否死亡:void judgeslod

判断蛇是否碰到自己或墙。

9.判断蛇是否吃到食物:void judgefood()

判断是否吃到食物,吃食后变0,蛇增长一节。

10.结束游戏:void gameover()

结束话语,并执行下一步。

六、基本代码

#include

#include

#include

#pragma comment(lib,"Winmm.lib")

#include "MyTimer.h"

#define SIZEMAX 100 /*蛇最大长度*/

#define SPEED 100 /*初始速度*/

#define len 20 /*蛇宽度*/

#define lm 10 /*蛇每次移动距离*/

#define initlen 600 /*初始化窗口正方形的长度*/

#define Min_snakelen 2 /*蛇的最小长度*/

typedef struct {

int x,y;

}DIR;

int snakelen=Min_snakelen; /*蛇的长度*/

int isfood=1; /*食物状态*/

int isover=0; /*游戏状态*/

int ispause=1; /*暂停状态*/

int ismusic=1; /*音乐播放状态*/

char dir; /*记录蛇运动的方向*/

char c='d';

DIR snake[500],food; /*定义蛇节点和食物的类型*/

int speed=SPEED;

void drawmap() /*画地图函数*/ {

IMAGE img;

char str[10];

loadimage(&img,"贪吃蛇.jpg"); /*游戏界面*/ putimage(0,0,&img);

loadimage(&img,"7.jpg"); /*侧栏提示*/

putimage(600,0,&img);

sprintf(str,"%d",snakelen);

setfont(30,0,"宋体");

setbkmode(TRANSPARENT);

outtextxy(620,10,"操作说明:");

setfont(20,0,"宋体");

outtextxy(615,50,"awsd控制方向键");

outtextxy(615,80,"p键暂停");

outtextxy(615,110,"o键继续");

outtextxy(615,200,"esc键退出");

outtextxy(615,140,"l键暂停音乐");

outtextxy(615,170,"k键继续播放");

outtextxy(730,250,str);

outtextxy(620,250,"蛇当前长度");

}

void init() /*初始化蛇函数*/ {

int i;

IMAGE img;

snake[0].x=9*len+lm;

snake[0].y=4*len+lm;

loadimage(&img,"1.jpg");

putimage(snake[0].x-lm,snake[0].y-lm,&img);

for(i=1;i

{

snake[i].x=len*(9-i)+lm;

snake[i].y=len*4+lm;

相关文档
最新文档