贪吃蛇设计规格说明书

合集下载

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

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

C语言贪吃蛇程序设计说明书题目:贪吃蛇游戏学校: 系别: 专业班级: 姓名: 学号: 指导老师: 日期:一、设计题目:贪吃蛇是一款经典的休闲游戏,一条蛇在密闭的围墙内,随机出现一个食物,通过控制方向键操作小蛇不停的朝着食物前进,直到吃掉食物。

每吃一个食物,小蛇都会长长一截,随之难度增大;当小蛇头撞到墙或自己时,小蛇死亡。

二、功能设计:本游戏要求实现以下几个功能:(1) 用上、下、左、右键控制游戏区蛇的运动方向,使之吃食而使身体变长;(2) 用户可以调节蛇的运行速度来选择不同的难度;(3) 游戏分多个难度级别;(4) 用户可自选颜色;(5) 记录成绩前五名的游戏玩家;(6) 增加背景音乐;(7) 提高障碍物和游戏级别。

三、程序模块图:贪吃蛇游戏初画控设帮始图制置助模模模模化块块块块墙蛇食移食死变成等音体身物动物亡长绩级效2四、算法流程图:开始初始化界面和蛇身放置食物获取按键开始运动碰到边界是否否蛇吃到食是蛇长大蛇死亡是继续否结束3五、函数原型与功能 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<graphics.h> #include<conio.h>#include<stdio.h>#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; /*蛇的长度*/4int 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<snakelen;i++){snake[i].x=len*(9-i)+lm;snake[i].y=len*4+lm;5loadimage(&img, "2.jpg");putimage(snake[i].x-lm,snake[i].y-lm, &img); }}void showsnake() /*画蛇函数*/ {int i;IMAGE img;loadimage(&img, "1.jpg");putimage(snake[0].x-lm,snake[0].y-lm , &img);loadimage(&img, "2.jpg");for(i=1;i<snakelen;i++)putimage(snake[i].x-lm,snake[i].y-lm, &img); }void snakemove() /*画动蛇函数*/ {int i;int mx=snake[0].x;int my=snake[0].y;switch(dir){case 'a':mx-=len;break;case 'd':mx+=len;break;case 'w':my-=len;break;case 's':my+=len;break;default:break;}for(i=snakelen-1;i>=0;i--){snake[i+1].x=snake[i].x;snake[i+1].y=snake[i].y;}snake[0].x=mx;snake[0].y=my;showsnake();}int ceshiover() /*检测游戏结束函数*/ {int i;if(snake[0].x<0||snake[0].x>30*len-lm||snake[0].y<0||snake[0].y>30*len-lm)return 1;for(i=1;i<snakelen;i++)6{if(snake[0].x==snake[i].x&&snake[0].y==snake[i].y) return 1;}return 0;}int foodinsnake() /*检测食物是否在蛇上函数*/ {for(int i=0;i<snakelen;i++)if(food.x==snake[i].x&&food.y==snake[i].y)return 1;elsereturn 0;}void showfood() /*画食物函数*/{IMAGE img;do{food.x=(rand()%30)*len+lm;food.y=(rand()%30)*len+lm;}while(foodinsnake());loadimage(&img, "3.jpg");putimage(food.x-lm,food.y-lm , &img);isfood=0;}void kmusic(){if(ismusic==0)mciSendString("pause mymusic",NULL,0,NULL);if(ismusic==1)mciSendString("resume mymusic",NULL,0,NULL);}void playbkmusic() /*播放背景音乐函数*/{mciSendString("open 超级玛丽.mp3 alias mymusic", NULL, 0, NULL); mciSendString("play mymusic repeat", NULL, 0, NULL);}void playgame() /*玩游戏函数*/{c='d'; //蛇开始向右移动isover=0;7snakelen=Min_snakelen;dir='d';IMAGE img;MyTimer t; //定义精确延时对象int T=200; // 延长时间drawmap(); //画游戏地图init(); //画小蛇初始位置while(!isover){if(ispause){snakemove();FlushBatchDraw(); //批量绘图EndBatchDraw(); //结束批量绘图if(snake[0].x==food.x&&snake[0].y==food.y){ snakelen++;isfood=1;}if(isfood)showfood();if(snakelen<35)T=200-3*snakelen;t.Sleep(T);BeginBatchDraw(); // 开始批量绘图模式,防止闪烁问题drawmap();loadimage(&img, "3.jpg"); // 加载食物图片putimage(food.x-lm,food.y-lm , &img);};//按键控制if(kbhit())c=getch();switch(c){case 'a':if(dir!='d'){dir=c;}break;case 'd':if(dir!='a'){dir=c;}break;case 'w':if(dir!='s'){8dir=c;}break;case 's':if(dir!='w'){dir=c;}break;case 27: exit(0); break; //游戏退出case 'p': ispause=0;break; //p暂停case 'o': ispause=1;break; //o继续游戏case 'l': ismusic=0;break; //l暂停音乐case 'k': ismusic=1;break; //k继续播放default:break;}kmusic(); //音乐控制播放//判断游戏结束if(ceshiover())isover=1;//判断是否重新再来HWND wnd = GetHWnd(); //获取窗口句柄if(isover)if (MessageBox(wnd, "游戏结束。

贪吃蛇需求规格说明书

贪吃蛇需求规格说明书

贪吃蛇需求规格说明书预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制贪吃蛇需求规格说明书开发小组成员:目录一.引言-----------------------------------------------------------------------------------------------31.1编写目的-----------------------------------------------------------------------------------31.2编写原则-----------------------------------------------------------------------------------31.3参考资料-----------------------------------------------------------------------------------31.4适用范围-----------------------------------------------------------------------------------3 二.系统概述----------------------------------------------------------------------------------------32.1业务背景-----------------------------------------------------------------------------------32.2用户类别与特征-------------------------------------------------------------------------32.3用户文档-----------------------------------------------------------------------------------42.4设计和实现上的限制-------------------------------------------------------------------42.5运行环境-----------------------------------------------------------------------------------4 三.功能需求----------------------------------------------------------------------------------------43.1系统用例图--------------------------------------------------------------------------------43.2项目名称-----------------------------------------------------------------------------------43.2.1功能描述----------------------------------------------------------------------------43.2.1.1进入游戏-------------------------------------------------------------------43.2.1.2玩游戏----------------------------------------------------------------------53.2.1.3游戏的退出---------------------------------------------------------------5 四.非功能需求-------------------------------------------------------------------------------------64.1系统质量要求-----------------------------------------------------------------------------64.1.1性能-----------------------------------------------------------------------------------64.1.2可靠性-------------------------------------------------------------------------------64.1.3可维护性----------------------------------------------------------------------------64.1.4可用性-------------------------------------------------------------------------------74.1.5可移植性----------------------------------------------------------------------------74.1.6可测试性----------------------------------------------------------------------------74.1.7易用性-------------------------------------------------------------------------------74.2安全性需求--------------------------------------------------------------------------------74.3环境需求-----------------------------------------------------------------------------------74.4保密性和私密性的需求---------------------------------------------------------------74.5其他需求----------------------------------------------------------------------------------7 五.外部接口需求---------------------------------------------------------------------------------85.1用户界面----------------------------------------------------------------------------------85.1.1界面布局---------------------------------------------------------------------------85.1.2界面风格---------------------------------------------------------------------------85.1.3界面规范---------------------------------------------------------------------------85.2硬件接口----------------------------------------------------------------------------------95.3软件接口----------------------------------------------------------------------------------9一、引言软件需求规格说明书记录系统或系统一部分完整软件需求。

_贪吃蛇游戏_说明书

_贪吃蛇游戏_说明书

湖南工业大学课程设计任务书2012 — 2013 学年第一学期计算机与通信学院学院(系、部)通信工程专业班级姓名学号课程名称:面向对象程序设计设计题目:贪吃蛇游戏完成期限:自2013 年 1 月7 日至2013 年 1 月13 日共 1 周内容及任务一、设计的主要技术参数(1) 游戏中共有贪吃蛇的长度和走向;(2) 随机生成食物(3) 通过响应定时器来实时更新。

二、设计任务(内容)(1) 随机生成贪吃蛇和食物;(2) 控制贪吃蛇的走动;(3) 食物消除判定,已经碰壁判定。

三、设计工作量一周进度安排起止日期工作内容1月7日-1月7日综合我们所学的知识,讨论设计的课题,制定用户需求。

1月8日-1月8日针对用户需求进行组员间的分工。

进一步熟悉自己的模块。

1月8日-1月12日一起完成开发,查找可能的漏洞,修改程序,直至完成程序。

1月13日-1月13日完成设计文档和课程设计说明书。

主要参考资料1.谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.2. Visual C++从入门到精通[M].北京:人民邮电出版社,2010指导教师(签字):年月日系(教研室)主任(签字):年月日面向对象程序设计设计说明书贪吃蛇游戏起止日期:2013 年1 月7 日至2013 年1 月13 日学生姓名班级学号成绩指导教师(签字)计算机与通信学院2013年1 月13日目录一、需求分析 (4)1.1、选题 (4)1.2、功能 (4)1.3、重要的MFC (4)二、概要设计 (4)2.1、设计思路 (4)2.2、程序框图 (5)三、详细设计 (6)四、调试分析 (8)五、用户使用说明 (8)六、测试结果 (9)七、附录或参考资料 (10)一、需求分析1.1、选题接到课程设计任务后,我们对曾经非常感兴趣的几款经典小游戏作了分析并筛选,然后发现使用MFC类库都可以完成这些游戏的编译,但是我们刚刚学习,还不能完全掌握MFC类的使用和复杂的算法,但是我们相信通过一个简单的贪吃蛇游戏可以让我们对MFC得到充分的锻炼。

贪吃蛇设计说明书

贪吃蛇设计说明书

贪吃蛇设计说明书贪吃蛇设计说明书开发小组成员:目录1.需求陈述 (3)2.软件结构 (3)2.1用例图 (3)2.2类图 (4)2.3状态图---------------------------------------------------------------4 3.程序描述 (4)3.1功能 (5)3.2性能 (5)3.3输入项目 (5)3.4输出项目 (6)3.5算法 (6)3.6程序逻辑 (6)4.测试要点-----------------------------------------75.对象设计-------------------------------------------------------------------71.需求陈述1.用户需要开发一款命名为贪吃蛇的休闲小游戏2.开始游戏时,存在一条向右运动的小蛇和蛇需要吃掉的豆3.用户通过键盘的“上下左右”键控制小蛇分别向“上下左右”运动来吃掉豆,同时增加自身的长度4.小蛇吃掉游戏规定数量的豆后,游戏结束5.游戏分为初级、中级、高级6.小蛇不能碰到边界7.小蛇自身不能碰撞8.游戏可以暂停和重新开始9.游戏完成后计算所得分数10.游戏在任何时候都可以退出2.软件结构1.用例图2.类图3.状态图3.程序描述3.1功能小蛇可以通过方向键进行方向的变化。

屏幕上随机的出现豆,贪吃蛇在运动的过程中蛇头可以吃掉出现的的豆。

吃掉豆后,蛇的身体会增长一节。

当蛇的身体碰到四周的墙壁或者是自己的身体时,游戏会结束。

并且,在屏幕的上方有一个分数牌显示,游戏开始时分数为0,每当蛇吃掉一个豆,分数会增加10分。

而在游戏的过程中,玩家可以按菜单上的退出键或点击界面的关闭按钮退出游戏。

3.2性能本款游戏在界面设计上清晰明了、美观大方;在操作上简单、易懂。

有效率高,不易出错的优点。

本游戏着重于娱乐大众,并且有锻炼反应速度的特点。

3.3输入项目1)用户在界面菜单的操作有点击“开始”、“暂停”、“结束”、“重新开始”、“初级”、“中级”、“高级”。

冀佳伟-贪吃蛇游戏设计

冀佳伟-贪吃蛇游戏设计

贪吃蛇游戏设计文档一、项目构思本项目实现可一个在wintc环境下运行的贪吃蛇游戏。

游戏在屏幕上的一个给定区域内进行,玩家通过控制键盘上的上、下、左、右方向键来控制蛇的前进方向。

屏幕上随机出现食物,只要蛇头位置与食物有重合,就认为蛇吃到了食物,蛇身增长一节,分数也增加。

玩家一直玩下去,直到蛇碰到周围的墙壁或蛇头撞上蛇身体,游戏宣告结束。

1.功能需求贪吃蛇游戏的总体需求就是能够正常玩游戏并能正常玩游戏并能够观察到自己的得分。

具体的功能型需求如下:(1)玩家只能在屏幕上固定的区域内玩游戏,区域周围用墙壁状的图形来标识;(2)蛇的身体有一个个小方块构成,蛇头由两个小方块构成;(3)食物由一个方块构成,食物要随机出现在游戏区域内;(4)玩家可用键盘上的上、下、左、右四个方向键来控制蛇的运行方向;(5)当蛇向前一定过程中,碰上了食物,则蛇身增长一节,当前食物消失,并且在另一边游戏区域随机出现一个食物;(6)蛇每增长一节,则得分相应增加,得分增加的原则如下:原得分+ 10(0<原得分<=100)原得分+ 20(100<原得分<=400)原得分+ 50(400<原得分<=1000)原得分+ 100(1000<原得分)(7)得分实时显示在屏幕顶部(游戏区域边框外的某个位置)(8)蛇在移动的过程中,蛇头不能撞上蛇身,蛇头也不能撞上周围墙壁,若这两种情况任意一种情形发生,则认为蛇已死,在游戏区域内显示“GAME OVER”信息,并在顶部显示所得分数,游戏结束;(9)在游戏过程中,玩家可随时按“ESC”键结束游戏。

2.非功能需求(1)界面友好,图形界面,游戏开始前有游戏的简单使用说明,方便玩家使用;(2)具有较好的容错能力,玩家在游戏过程中,除了规定的按键外,其他按键均忽略,不予处理;(3)发布游戏时,将图形驱动加载到程序中,使系统具有良好的可扩展性和平台适应性,可在任何PC机上运行。

Qt课程设计--贪吃蛇游戏设计

Qt课程设计--贪吃蛇游戏设计

Qt课程设计--贪吃蛇游戏设计Qt课程设计说明书题目: 贪吃蛇游戏设计目录功能需求 (3)界面要求 (3)其他要求 (4)设计分析 (4)操作方法及运行结果 (4)设计体会 (6)参考文献 (6)功能需求利用Qt creator制作一个贪吃蛇的小游戏,要求:(1)在窗口上显示菜单栏,帮助栏和工具栏(2)游戏含有正常模式、死亡模式、情侣模式三种(3)能够记录游戏时间,游戏成绩,游戏排行(4)能够显示英雄榜(5)能够显示帮助提示界面要求贪吃蛇游戏的游戏界面包括背景图片、工具栏图片、蛇移动范围的绘制等等。

其中贪吃蛇的身体用什么方法绘制,才可以使得其在游戏过程中可以实现“吃”的功能是很重要的。

因此在游戏界面的初始绘制时就必须考虑到游戏时可能遇到的问题。

导入位图以及菜单工具条后,游戏未开始前(win7系统下)的界面显示如图2-1所示其他要求能够注意各种异常处理,注重提高程序运行效率设计分析根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面正常模式、死亡模式以及情侣模式,游戏帮助提示与英雄榜的显示等等。

具体的程序结构如下操作方法及运行结果根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。

贪吃蛇的内容主要包括:普通模式用上下左右控制方向,随机出现食物,但是如果碰到边框,障碍物和自己都会挂掉;死亡模式用上下左右控制方向,小蛇获得了穿越边框的能力,但是得了恶性长胖病,可以通过吃减肥药来偏强控制,但是不要碰到自己排除的废物;情侣模式玩家1用上下左右控制方向,用P、O、I(或者是1、2、0)来发射子弹,可以后退,不能穿越边框玩家2用W,A,S,D来控制方向,空格键释放陷阱子弹和陷阱都需要food才能补充;英雄榜能够记录正常模式和死亡模式游戏时间,游戏成绩,游戏排行,玩家姓名;按下帮助键可获得游戏帮助说明。

设计体会我学会了用Qt编写贪吃蛇游戏,能熟练地掌握Qt语言,通过每章每节的学习让我知道了Qt的重要性,学习Qt能让我们深刻的知道在以后的工作中能用到,还有让我知道学习的重要意义,通过对Qt的学习能让我们解决很多的实际东西,QT能让我们锻炼自己的编程能力,还能处理许多别的语言处理不了的东西,我知道了学习Qt不仅能提高自己的认识,还巩固了对原来学过的其他语言的学习。

《8乘8点阵贪吃蛇游戏》说明书

《8乘8点阵贪吃蛇游戏》说明书

《单片机应用技术》作品设计说明书题目∶8*8点阵贪吃蛇游戏院系∶电子信息学院专业班级∶组长∶组员∶指导教师∶2014年 4月16日目录1.摘要 (1)2.作品简介 (2)3.系统设计参数要求 (3)4.系统设计 (4)4.1系统设计总框图 (4)4.2各模块说明 (4)4.2.1 AT89C52单片机最小系统模块 (4)4.2.2 8*8点阵屏模块 (5)4.2.3独立键盘模块 (6)4.3系统总原理图说明 (7)4.4系统操作说明 (8)4.5注意事项 (8)1.摘要随着电子技术的迅速发展,特别是大规模集成电路出现,单片机技术在设计中所体现出来的优势越来越明显,给人类生活带来了根本性的改变,成为新一代电子设备不可缺少的核心部件,现在单片机的应用技术已经走进了千家万户,给人类的生活带来了诸多方便。

单片机是因为工业测控而诞生的,他把计算机最基础的功能电路如CPU程序存储器,数据存储器,I/O接口,定时,计数器,中断系统等集成到一块芯片上,形成单片形态的计算机。

2.作品简介本设计是制作一个8*8点阵的贪吃蛇游戏,系统以单片机的c语言的软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的结构采用模块化结构,使程序设计的逻辑更加简洁明了。

系统通过LED点阵屏为载体显示数据,并用四个输入端表示四个控制键(上下左右)简洁明了,就是典型的贪吃蛇游戏机,本系统硬件部分由STC89C52RC单片机,8*8点阵屏,74HC537驱动芯片,4个按键,软件部分在keil环境下用c51语言编写,包括游戏初始蛇的段数,以及障碍墙壁,游戏结束时自动复位3.系统设计参数要求该系统要求参数具体如下:(1)用四个按钮控制蛇的方向,蛇的原始段数为2点,并设置墙壁。

(2)蛇的移动速度随着蛇的段数增加而增加,当蛇碰到墙壁和自己的身体时死亡,并显示分数。

(3)用proteus设计,仿真基于STC89C52RC单片机的8*8点阵贪吃蛇的硬件电路。

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

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

测控技术与仪器专业课程设计题单班级0982011 学生某某课程名称计算机课程设计课题贪吃蛇游戏程序设计设计要求 1.学习游戏设计有关知识。

2.设计贪吃蛇游戏程序。

3.调试并修改程序。

4.完成课程设计论文。

课题发给日期2011年6月25日课程设计完成日期2011年7月09日指导教师余某某评语:贪吃蛇游戏学生:某某班级:0882011指导老师:余某某摘要:编写C语言程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙,在围墙随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

作为一个完整的程序,必须考虑人机交流与用户体验。

游戏的界面不能太丑,更不能连个简单的界面都没有。

游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。

游戏的美观是一方面,游戏的在素质是另一方面。

一个游戏的优劣,最终由玩家决定。

在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。

关键词:贪吃蛇流程图c语言源程序目录1 前言 (1)2 课设容 (3)2.1课设目的 (3)2.2设计功能 (3)2.3结构设计 (7)3结论 (11)参考文献 (15)附录A (16)1 前言C语言是一种易学易懂的通用程序设计语言,由于它具有功能性强,运用简洁,灵活兼有高级语言与低级语言的优点,以及“目标程序效率高”可移植性和能在各种系统上普遍实现等特点使它成为当今世界上的主流程序设计语言之一,同时被选作目前全世界广泛应用,同时也是大学生必修的科目。

作为一位当代的大学生更要很好的利用它,学好一门设计语言,实现学以至用。

制作C程序报告,可以巩固和加深自己对C语言课程的基本知识的理解和掌握,并且能够掌握C语言编程和程序调试的基本技能。

贪吃蛇游戏-概要设计

贪吃蛇游戏-概要设计

《项目名称》概要设计说明书2010-01目录1 概述 (1)1.1 编写目的 (1)2 需求概述 (1)2.1 目标与需求 (1)2.2 环境描述 (1)3 总体设计 (1)3.1 总体解决方案 (1)3.1.1 软件体系结构 (1)3.1.1.1显示层类图 (2)3.1.1.2控制层类图 (2)3.1.1.3业务层类图 (2)3.1.1.4实体层类图 (2)3.1.2控制层顺序图 (3)3.1.3显示层顺序图 (4)4 接口设计 (4)4.1 内部接口设计 (4)1 概述1.1 编写目的本文档的编写目的是:详细定义贪吃蛇游戏的总体功能;给出系统的结构设计,作为过程设计和程序编写的依据。

2需求概述2.1 目标与需求在游戏中,玩家操控一条蛇,它会不停前进,玩家只能操控蛇的头部朝向(上下左右),吃掉食物,并要避免触碰到自身或者墙壁。

每次贪食蛇吃掉一件食物,它的身体便增长一些,蛇的身体越长,游戏得分越高,直到蛇碰到墙壁或者自身时候,游戏结束。

2.2 环境描述jre1.5版本或以上Windows xp3 总体设计3.1 总体解决方案设计贪吃蛇时采用面向对象的设计方法。

3.1.1 软件体系结构整个贪吃蛇游戏由显示层、控制层、业务层、实体层组成。

软件体系结构图如下。

图1软件体系结构图显示层:将蛇、食物、墙通过加载相应的图片形式化显示出来。

控制层:接收键盘事件,调用相关事件处理方法,以及计算游戏分数等方法实体层:包含蛇、食物、墙数据(坐标,长度等)业务层:具体的事件处理方法,以及对实体层数据进行更新的具体方法以下为各层的核心类。

3.1.1.1显示层类图parse图2显示层类图显示层只有一个边界类parse。

3.1.1.2控制层类图mainProcess图3控制层类图控制层只有一个mainProcess一个控制类。

3.1.1.3业务层类图keyPressed图4业务层类图业务层只有一个类keyPressed。

3.1.1.4实体层类图图5实体层类图包含Food、Snake和Wall 3个实体类。

贪吃蛇游戏策划书(第四组)

贪吃蛇游戏策划书(第四组)

贪吃蛇游戏策划书(第四组)贪吃蛇游戏设计文档一.概述本设计主要围绕贪吃蛇游戏展开。

众所周知,贪吃蛇游戏一直以来是比较流行的。

传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,而现在的贪吃蛇游戏已经发展的相当好;具有更多的功能和友好的界面。

例如,最近流行的的3D版的贪吃蛇游戏,界面相当的美观,有很强的立体效果,真实感更强,食物也为立体的且颜色绚丽。

在3D版贪吃蛇游戏里面,墙壁是真实的墙壁,障碍物比较多,如树、土丘等。

此外,其功能更多更强,可以选择难度。

不过,总而言之,3D版与传统的贪吃蛇游戏有共性,即娱乐性与益智性。

这些也是贪吃蛇游戏的优点。

因水平有限,只能设计简单的贪吃蛇游戏。

不过,在功能上,比传统贪吃蛇游戏更丰富。

蛇可以反向运动,操作起来,显得更为灵活。

界面的颜色选用绿色,不易使眼睛疲劳。

系统名称:贪吃蛇游戏组长评分成员分工刘利霞肖莎田君刘子豪骆兵二.制作工具后期调试、代码整合数据操作模块模型设计软件整体框架设计以及模块划分视图层设计本课题研究的是基于J2ME的手机贪吃蛇游戏,利用EclipseIDE工具和Sun Java ME SDK ,JAVA语法和J2ME系统的API来实现。

主要研究的对象是: 1.简单人工智能的实现。

操作系统:Microsoft Windows XP 程序语言:Java 2开发包:Sun Java(TM) Wireless Toolkit for CLDC IDE:Eclipse2.面向对象的编程技巧;的低级、高级界面的开发;内专门游戏开发包Game包的使用 5.多线程技术的应用;三. Game play 以及外观贪吃蛇游戏的规则简介在贪吃蛇游戏中,玩家操作小方块连接而成的蛇,去吃随机散落在画面内的小方块,每吃一块就增加一小方块长度,要是撞壁以及撞自己的尾,就属于失败,如无失败则直到通关为止。

同时食物也是会变动位置的,在一定时候没有吃到的话食物就会变换位置。

屏幕的长度的行向为11单位,纵向为18单位。

贪吃蛇详细设计说明书

贪吃蛇详细设计说明书

贪吃蛇_详细设计说明书编写人:完成日期:X年X月X日文档名称:详细设计规格说明书1项目名称:贪吃蛇游戏项目负责人:XXX XXX编写 TEST __X___年_X_月___X_日校对所有小组成员 __2015___年___6__月___13_日审核所有小组成员 ____2015_年___6__月___13_日批准 XXX _2015____年___6__月___14__日开发单位 __XXX班_____组员: XXX XXX目录1.引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (2)1.4参考资料 (3)2.系统的结构 (4)2.1 每个模块的名称、标识符如下所示: (4)2.2模块之间的关系: (5)3.模块1(标识符)设计说明 (6)3.1模块描述 (6)3.2功能 (7)3.3性能 (7)3.4输入项 (8)3.5输出项 (8)3.6设计方法(算法) (8)3.7流程逻辑 (11)3.8接口 (12)3.9存储分配 (12)3.10注释设计 (12)3.11限制条件 (12)3.12测试计划 (13)3.13尚未解决的问题 (13)1.引言1.1编写目的本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。

软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。

本说明书预期的读者是软件开发小组的产品实现人员。

1.2背景说明:系统名称:贪吃蛇游戏任务提出者:手机策划人员开发者:软件开发小组的产品实现人员用户:Android操作系统手机用户运行该程序系统的计算中心:Android操作系统手机芯片1.3定义1. 节:一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。

节是蛇身上最小的单位。

2. 链表:用来保存每一段的状态,链表的元素单位是节。

且链表的第一个元素表示蛇的头部。

3. 坐标系:以左上角那点为(0,0),向右则x递增,向下则y递增1.4参考资料1.《软件工程导论》张海藩著清华大学出版社2.《数据库系统原理教程》刘韬著人民邮电出版社3.《C程序设计》谭浩强清华大学出版社4.《成功的软件开发》(原书第二版)(蔡愉祖、邓本江等译)机械工业出版社)5.《实用软件文档写作》肖刚著清华大学出版社6.计算器的电路设计及算法研究[D]. 邱钊. 电子科技大学,2011.7.基于Java EE的网络销售系统的设计与实现[D]. 刘丹.湖南大学,20128.需求规格说明书《》软件开发小组2015/49.用户操作手册(初稿)《》软件开发小组2015/52.系统的结构2.1 每个模块的名称、标识符如下所示:1.Ground类1) private int TYPE;2) public int[][] rocks=new int[Global.WIDTH][Global.HEIGHT];3) public void setGround(int type){} 根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。

单片机课程设计贪吃蛇说明书

单片机课程设计贪吃蛇说明书

单片机课程实训作品说明书姓名:李兆基完成时间:2016年7月3日一、 作品说明介绍1. 作品名称:贪吃蛇简易游戏机2. 作品实现功能:a) 按上、下、左、右键控制蛇身改变方向;b) 蛇头与食物碰撞时“吃掉”食物,使蛇身变长; c) 复位键使游戏重新开始;d) 暂停/继续键可以暂停、继续游戏3. 选择目的:巩固单片机课程所学知识,真正做到学有所用二、 作品操作介绍1. 作品外观图① ②点阵屏:显示地图、蛇以及食物③STC12C5A60S2单片机:控制整个作品,可以烧录不同的程序 ④微动开关1:向上的按键,用于改变蛇的方向 ⑤微动开关2:向下的按键,用于改变蛇的方向 ⑥微动开关3:向左的按键,用于改变蛇的方向①②③④⑤⑥⑦ ⑧ ⑨⑩ ⑪⑫⑬⑭⑮⑦微动开关4:向右的按键,用于改变蛇的方向⑧微动开关5:复位按键,按下后游戏复位,重新开始⑨微动开关6:暂停/继续按键,控制游戏暂停/继续⑩自锁开关:实现整体的电源总控制(断负)⑪晶振、电容:用于单片机起振,单片机的最小时钟电路⑫排针:用于连接电源正负极以及RXD和TXD⑬电源指示灯:通电时点亮⑭8个1KΩ电阻:限制电流大小⑮10个0Ω电阻:做跳线用2.作品功能介绍及操作说明a)给游戏机上电①将电源正极接在排针处标有VCC的位置②将电源负极接在排针处标有GND的位置③按下自锁开关完成上电b)让贪吃蛇改变方向①按向上键:蛇身向上②按向下键:蛇身向下③按向左键:蛇身向左④按向右键:蛇身向右c)游戏暂停/继续、复位①按暂停/继续键:游戏暂停/继续②按复位键:游戏复位,重新开使三、作品制作说明1.电路原理图2.3.PCBa)正面图(见附录1)b)F5图(见附录2)c)F6图(见附录3)四、产品控制顺序/*******************************************名称:贪吃蛇简易游戏机制作人:李兆基制作时间:2016.6.28修改时间:2016.7.1 (加入吃食物蛇身变长功能)2016.7.3 (处理程序兼容细节)*******************************************/#include<stc12c5a60s2.h>#include<stdlib.h>unsigned char map[16]; //定义一个MAP地图unsigned char line; //列unsigned char snake[45][2]; //定义蛇的大小unsigned char game_reset; //游戏复位unsigned char foodx,foody; //食物的位置sbit Key_left=P3^2; //左sbit Key_up=P3^3; //上sbit Key_down=P3^4; //下sbit Key_right=P3^5; //右sbit Key_start=P3^7; //开始/暂停sbit Key_reset=P3^6; //复位/****************按键所对应的位置***************/void CreateFood(){unsigned char i;i=0;RESET:foodx=rand()%6+1;//rand()函数随即产生食物的横坐标(1~6)foody=rand()%14+1;//rand()函数随即产生食物的纵坐标(1~14)while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44)) //找蛇尾(遍历蛇){if(snake[i][0]==foodx&&snake[i][1]==foody)goto RESET;//如果产生的食物在蛇的节点上,则重新生成食物i++;}}/*********构造食物********/void ClearMap(){unsigned char i;for(i=0;i<16;i++)map[i]=0x81; //清空地图map[0]=map[15]=0xff; //构造墙}/**********初始化地图**********/void ClearSnake(){unsigned char i;for(i=0;i<45;i++)snake[i][0]=snake[i][1]=0x00; //清空蛇节点snake[0][0]=5;snake[0][1]=10; //构造蛇头snake[1][0]=5;snake[1][1]=11;snake[2][0]=5;snake[2][1]=12; //构造蛇身snake[3][0]=44;snake[3][1]=44; //构造蛇尾}/************初始化蛇节点************/void SnakeToMap(void){unsigned int i;ClearMap();i=0x80>>foodx; //获取食物的横坐标map[foody]|=i; //将其横坐标和纵坐标对应的点显示在地图上i=0;while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44)){map[snake[i][1]]|=0x80>>snake[i][0];i++;} //将蛇节点全部显示在地图上}/**********************将蛇以及食物显示在地图上***********************/void Move(unsigned char fx)//fx参数(0为上,1为下,2为左,3右){unsigned char i,snakewx,snakewy;snakewx=snakewy=i=0;while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++;snakewx=snake[i-1][0];snakewy=snake[i-1][1]; //扫描蛇节点并且得到尾巴的位置(横纵坐标)switch(fx){case 0:while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++; //扫描蛇节点得到节点数for(i--;i>0;i--){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];} //后节点朝着前节点方向移动snake[0][0]--; //移动蛇头break;case 1:while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++; //扫描蛇节点得到节点数for(i--;i>0;i--){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1]; //后节点朝着前节点方向移动}snake[0][0]++; //移动蛇头break;case 2:while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++;for(i--;i>0;i--){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];}snake[0][1]--;break;case 3:while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++;for(i--;i>0;i--){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];}snake[0][1]++;break;}if(snake[0][0]==foodx&&snake[0][1]==foody) //蛇吃食物(蛇头的坐标与食物坐标重合){while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++;snake[i][0]=snakewx;snake[i][1]=snakewy;snake[i+1][0]=snake[i+1][1]=44; //重新添加(定义)蛇尾CreateFood(); //创建食物}}/************************蛇的移动(按键的方向改变)************************/void delay(unsigned int i){unsigned int j;while(i--)for(j=600;j>0;j--);}/*********************延时函数(接近与1毫秒)*********************/void donghua(void){unsigned int i;for(i=0;i<16;i++){if(i<8){P2=0xff;P1=~(0x80>>i);}else{P1=0xff; //第一块点阵屏亮P2=~(0x80>>(i-8));}P0=0xff;delay(20);}P1=P2=P0=0x00;for(i=0;i<16;i++){if(i<8){P1=0xff;P2=~(0x01<<i);}else{P2=0xff;P1=~(0x01<<(i-8));} //第二块点阵屏亮P0=0xff;delay(20);}}/********开机动画********/bit IsOver(){unsigned char i;game_reset=0;i=0;while(!(snake[i][0]==snake[i][1]&&snake[i][0]==44))i++;for(i--;i>0;i--){if(snake[0][0]==snake[i][0]&&snake[0][1]==snake[i][1]){game_reset=1;break;} //遍历蛇节点是否蛇头和蛇身重合}if(snake[0][0]==0||snake[0][0]==7||snake[0][1]==0||snake[0][1]==15) //判断蛇头是否撞墙game_reset=1;return game_reset;}/*********************判断蛇的状态(死亡条件)**********************/void init(void){P0M0=0xff;P0M1=0x00;//PO为强推模式TMOD=0X01;//设定时/计数器方式EA=1; //开启中断ET0=1; //开启定时计数器0TH0=(65536-1000)/256;TL0=(65536-1000)%256; //设置计数初值为1毫秒TR0=1; //开启定时/计数软开关ClearMap(); //初始化地图ClearSnake(); //初始化蛇}/**********初始化函数**********/void main(void){unsigned char fx,i,newfx; //定义方向,新方向,以及变量iunsigned char isStart; //开始/暂停变量newfx=fx=2; //初始化方向donghua();delay(100);i=0;isStart=1;init();CreateFood();while(1){for(i=0;i<20;i++){delay(10);if(fx!=1&&!Key_up&&isStart)//蛇向下移动则向上按键无效{newfx=0;}if(fx!=0&&!Key_down&&isStart) //蛇向上移动则向下按键无效{newfx=1;}if(fx!=3&&!Key_left&&isStart) //蛇向左移动则向右按键无效{newfx=2;}if(fx!=2&&!Key_right&&isStart) //蛇向右移动则向左按键无效{newfx=3;} //按键改变newfx,默认向fx移动if(!Key_start){delay(20);if(!Key_start)if(isStart==1)isStart=0;else if(isStart==0)isStart=1; //暂停/继续改变isStart状态while(!Key_start);delay(20);}if(!Key_reset){delay(20);if(!Key_reset)game_reset=1;while(!Key_reset);delay(20);if(game_reset)return; //复位}if(!isStart)i--; //暂停状态时所执行的死循环delay(10);}if(fx==0&&newfx==1||fx==2&&newfx==3)newfx=fx;elsefx=newfx; //方向冲突时按新方向移动,避免按的太快Move(fx); //移动while(IsOver()){if(!Key_reset){delay(20);if(!Key_reset)game_reset=1;while(!Key_reset);delay(20);if(game_reset)return;}if(!isStart)i--;delay(10);} //当蛇死亡只能激活复位按钮SnakeToMap(); //将蛇显示在地图}}/******主函数******/void display(void) interrupt 1{TR0=0; //关闭软开关TH0=(65536-1000)/256;TL0=(65536-1000)%256; //计数赋值if(line<8){P2=0xff;P1=~(0x80>>line); //选列}else{P1=0xff;P2=~(0x80>>(line-8)); //选列} //两块点阵屏的对接P0=map[line]; //送行line++;if(line==16)line=0;TR0=1; //开启软开关}/********显示函数********/。

贪吃蛇设计说明书

贪吃蛇设计说明书

贪吃蛇设计说明书摘要本贪吃蛇(Snake)游戏仿照以往的贪吃蛇游戏,尽管在图形界面方面存在一定的缺陷,但能够基本实现游戏的功能。

本游戏分为10个级别,玩家通过方向键对蛇的运动进行控制,如果蛇吃到食物,得分加10分,并且到一定的程度级别会上升。

此外,用户可以根据需要选择速度、界面以及播放的音乐,并且在游戏中保存了以往前三名玩家的记录,供玩家参考。

关键字:主页面,快捷键,方向键,解决方案目录第一章:ATM系统概述1.1系统的主要任务1.2 基本要求1.3 主要功能1.4 设计方法及涉及知识点1.4.1 设计方法1.4.2 涉及知识点1.5 系统开发的目的第二章:系统分析2.1分析问题和定义类,给出类的定义和联系,2.2系统开发平台的选择2.3程序设计语言的选择2.4 操作平台第三章:总体设计3.1系统的结构图(总图)3.2函数模块说明(每个函数的原型、功能说明)3.3系统运行界面截图第四章:系统评价4.1系统的特点4.2系统的缺点4.3将来可能提出的要求第五章:小结第六章:参考文献第一章 ATM系统概述1.系统的主要任务本游戏主要提供给玩家进行娱乐。

2.基本要求1.要求利用面向对象的方法以及C#程序设计语言来完成该系统的设计;2.要求在设计的过程中,建立清晰的类的层次;3.在系统中建立相关的类,每个类中都要有各自的属性和方法;4.程序运行结果正确,操作方面,界面美观,逻辑层次清楚,程序结构合理,文档规范清晰。

3.主要功能该系统具备以下功能:控制蛇运动方向:用键盘上的↑、↓、←、→控制蛇的运动方向。

当蛇向一个方向运动时,它的反向键被锁定。

不能通过连续按住某个方向键而加快蛇的运动。

若在游戏中,蛇头碰了墙或是自己的身体,则游戏结束。

蛇吃食物:蛇每吃一个食物增长一节,并且得分加10分,总共为100节。

蛇每增长10节游戏上升一个级别。

游戏结束:如果在游戏过程中,蛇头碰墙或是碰到了自己的身体,则游戏结束。

如果在游戏过程中,用户选择退出游戏,则提醒用户游戏正在进行,是否要退出。

贪吃蛇功能说明书(初稿)

贪吃蛇功能说明书(初稿)

贪吃蛇功能说明书(初稿)贪吃蛇(单词版)软件功能说明书1 开发背景“贪吃蛇”这个游戏对于80,90后的⼈来说是童年的记忆,可以将其说为是⼀个时代的经典,实现了传统贪吃蛇的游戏功能;现在⼈们对英语的重视程度越来越深,现在的⼩孩⼦在幼⼉园的时候就接受了简单的英语教学,熟记较多的英语单词对英语的学习起着巨⼤的积极作⽤,市⾯上的英语单词背记软件对于初⾼中学⽣来说易于接受,但是对于⼩学及以下的学⽣来说,这些软件的使⽤普遍率不⾼,年龄较⼩的孩⼦很难使⽤这些软件保持较长时间的集中⼒背单词。

基于这样的现实情况,【探路者团队】开发了贪吃蛇(单词版)的益智游戏软件。

该软件既可以实现贪吃蛇的游戏功能,⼜在原始功能的基础上增加单词拼写功能,使⽤户在娱乐的同时进⾏英语单词的学习。

2 开发⽬标开发本软件⼀⽅⾯是为了让80,90后⽤户重温童年的美好记忆,另⼀⽅⾯也是为了增加对英语学习兴趣较弱、意志⼒薄弱的中⼩学⽣学习英语的兴趣和动⼒,在游戏中记忆单词拼写。

本软件在使⽤过程中按照提供单词的顺序,“吃掉”软件当前提供的单词,并按照拼写顺序依次“吃”相应的字母才能完成此单词的任务,不提供⽤户跳过此单词进⾏下⼀单词的功能。

本软件只⽀持蛇头进⾏上下左右四个⽅位移动,暂不⽀持360°全⽅位移动蛇头。

3 软件⽤户本软件的应⽤⼈群主要是喜欢玩贪吃蛇,并且想通过游戏记单词的⼈群。

⽬前主要⽬标是学龄前⼉童,后期我们会对词库进⾏增加,以适合更多的⼈群。

4 软件功能描述4.1 贪吃蛇游戏基本功能4.1.1 运动功能⽤户可通过使⽤键盘上的上下左右⽅位键控制蛇的移动⽅向,蛇在控制的⽅向上进⾏直线前进。

4.1.2 吃⾷物功能当界⾯任意位置出现⾷物,⽤户使⽤⽅位键控制蛇移动到⾷物周围,当蛇头碰到⾷物时则表⽰贪吃蛇吃到此⾷物,界⾯上会在任意位置出现下⼀个⾷物,⽤户再次控制蛇去吃这⼀⾷物。

4.1.3 死亡判定功能当蛇头在前进⽅向上撞到墙壁或蛇头吃到蛇⾝时,给出死亡判定,并给出⽤户本次游戏得分,在下⼀次⽤户使⽤软件进⾏游戏时会将本次成绩加⼊到成绩排名列表中。

贪吃蛇程序设计说明书

贪吃蛇程序设计说明书

贪吃蛇程序设计说明书贪吃蛇游戏程序设计说明书题目:贪吃蛇游戏学校:系别:专业班级:姓名:学号:指导老师:日期:一、设计题目:贪吃蛇是一款经典的休闲游戏,一条蛇在密闭的围墙内,随机出现一个食物,通过控制方向键操作小蛇不停的朝着食物前进,直到吃掉食物。

每吃一个食物,小蛇都会长长一截,随之难度增大;当小蛇头撞到墙或自己时,小蛇死亡。

二、功能设计:本游戏要求实现以下几个功能:(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<snakelen;i++)< p="">{snake[i].x=len*(9-i)+lm;snake[i].y=len*4+lm;loadimage(&img, "2.jpg");putimage(snake[i].x-lm,snake[i].y-lm, &img); }}void showsnake() /*画蛇函数*/{int i;IMAGE img;loadimage(&img, "1.jpg");putimage(snake[0].x-lm,snake[0].y-lm , &img); loadimage(&img, "2.jpg");for(i=1;i<snakelen;i++)< p="">putimage(snake[i].x-lm,snake[i].y-lm, &img); }void snakemove() /*画动蛇函数*/{int i;int mx=snake[0].x;int my=snake[0].y;switch(dir){case 'a':mx-=len;break;case 'd':mx+=len;break;case 'w':my-=len;break;case 's':my+=len;break;default:break;}for(i=snakelen-1;i>=0;i--){snake[i+1].x=snake[i].x;snake[i+1].y=snake[i].y;}snake[0].x=mx;snake[0].y=my;showsnake();}int ceshiover() /*检测游戏结束函数*/{int i;if(snake[0].x<0||snake[0].x>30*len-lm||snake[0].y<0||snake[0].y>30*len-lm) return 1;for(i=1;i<snakelen;i++)< p="">{if(snake[0].x==snake[i].x&&snake[0].y==snake[i].y) return 1;}return 0;}int foodinsnake() /*检测食物是否在蛇上函数*/ {for(int i=0;i<snakelen;i++)< p="">if(food.x==snake[i].x&&food.y==snake[i].y)return 1;elsereturn 0;}void showfood() /*画食物函数*/{IMAGE img;do{food.x=(rand()%30)*len+lm;food.y=(rand()%30)*len+lm;}while(foodinsnake());loadimage(&img, "3.jpg");putimage(food.x-lm,food.y-lm , &img);isfood=0;}void kmusic(){if(ismusic==0)mciSendString("pause mymusic",NULL,0,NULL);if(ismusic==1)mciSendString("resume mymusic",NULL,0,NULL);}void playbkmusic() /*播放背景音乐函数*/{mciSendString("open 超级玛丽.mp3 alias mymusic", NULL, 0, NULL);mciSendString("play mymusic repeat", NULL, 0, NULL);}void playgame() /*玩游戏函数*/{c='d'; //蛇开始向右移动isover=0;snakelen=Min_snakelen;dir='d';IMAGE img;MyTimer t; //定义精确延时对象int T=200; // 延长时间drawmap(); //画游戏地图init(); //画小蛇初始位置while(!isover){if(ispause){snakemove();FlushBatchDraw(); //批量绘图EndBatchDraw(); //结束批量绘图if(snake[0].x==food.x&&snake[0].y==food.y){ snakelen++;isfood=1;}if(isfood)showfood();if(snakelen<35)T=200-3*snakelen;t.Sleep(T);BeginBatchDraw(); // 开始批量绘图模式,防止闪烁问题drawmap();loadimage(&img, "3.jpg"); // 加载食物图片putimage(food.x-lm,food.y-lm , &img);};//按键控制if(kbhit())c=getch();switch(c){case 'a':if(dir!='d'){dir=c;}break;case 'd':if(dir!='a'){dir=c;}break;case 'w':if(dir!='s'){dir=c;}break;case 's':if(dir!='w'){dir=c;}break;case 27: exit(0); break; //游戏退出case 'p': ispause=0;break; //p暂停case 'o': ispause=1;break; //o继续游戏case 'l': ismusic=0;break; //l暂停音乐case 'k': ismusic=1;break; //k继续播放default:break;}kmusic(); //音乐控制播放//判断游戏结束if(ceshiover())isover=1;//判断是否重新再来HWND wnd = GetHWnd(); //获取窗口句柄if(isover)if (MessageBox(wnd, "游戏结束。

贪吃蛇 策划书3篇

贪吃蛇 策划书3篇

贪吃蛇策划书3篇篇一《贪吃蛇策划书》一、游戏概述1. 游戏名称:贪吃蛇2. 游戏类型:休闲益智类游戏3. 游戏目标:玩家通过控制蛇的移动,吃掉食物使蛇变长,同时避免碰到墙壁或自己的身体,挑战更高的分数。

4. 游戏规则:蛇初始长度为一定值,通过吃掉食物来增加长度。

食物会随机出现在游戏区域内。

蛇的移动方向由玩家控制,可以通过方向键或触摸屏幕来操作。

当蛇碰到墙壁或自己的身体时,游戏结束。

游戏结束后,根据玩家的得分进行排名。

二、游戏界面设计1. 游戏区域:展示蛇和食物的区域,背景可以选择简洁的颜色或图案。

2. 得分显示:实时显示玩家的得分。

3. 游戏状态显示:显示游戏的开始、暂停、结束等状态。

4. 操作按钮:提供开始游戏、暂停游戏、重新开始等操作按钮。

三、游戏玩法设计1. 单人模式:玩家独自控制蛇进行游戏,挑战自己的最高分。

2. 多人模式(可选):支持多人在线对战,玩家可以与其他玩家竞争得分。

3. 关卡模式(可选):设置不同的关卡,每个关卡有特定的目标和难度。

四、游戏难度设计1. 随着蛇的长度增加,速度逐渐加快,增加游戏难度。

2. 食物出现的频率和位置可以根据难度级别进行调整。

3. 可以设置障碍物或特殊道具,增加游戏的挑战性和趣味性。

五、游戏音效设计1. 背景音乐:选择轻松愉快的音乐,营造游戏氛围。

2. 吃食物音效:当蛇吃掉食物时,播放相应的音效,增加游戏的趣味性。

3. 碰撞音效:当蛇碰到墙壁或自己的身体时,播放碰撞音效,提示玩家游戏结束。

六、游戏开发计划1. 确定游戏开发团队和分工。

2. 制定游戏开发时间表,包括各个阶段的时间节点。

3. 进行游戏原型设计和开发。

4. 进行游戏测试和优化。

5. 发布游戏并进行推广。

七、游戏盈利模式1. 广告收入:在游戏中展示广告,获取广告收益。

2. 内购道具:提供一些付费道具,如加速道具、复活道具等,增加游戏收入。

3. 付费:提供付费版本,获取收益。

八、游戏推广计划1. 利用社交媒体、游戏论坛等渠道进行宣传推广。

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

贪吃蛇设计规格说明书
院系:信息技术学院
姓名:livechange
指导老师:XXX
日期:2016-06-07
目录
一、设计背景 (2)
二、需求分析 (2)
三、运行环境 (3)
四、设计概要 (3)
五、详细设计 (5)
六、停止游戏 (8)
贪吃蛇
一、设计背景
随着科技的发展,笔记本、手机的价格相对于以前下降很多,现在很多普通人也可以使用笔记本、智能手机。

笔记本、手机不再只是主要用来办公、接打电话。

更多的用户希望在工作、学习之余通过方便灵巧可随身携带的设备休闲娱乐。

因此,为了迎合众多用户的需求并适应用户要求,开发具有很强的娱乐性和交互性的贪吃蛇小游戏。

可以说该游戏的优势在于它的简单易行,不论是笔记本、iPad,还是智能手机,都能很快顺利的运行。

在如今社会,人们的工作学习压力逐渐增大,生活节奏逐渐加快,大多数人没有足够的时间去休闲娱乐,放松自己。

这款小型的游戏,可以让我们随时随地都能享受游戏。

让我们从繁重的日常生活中解脱出来。

游戏的主界面应该力求简单,以提高玩家对游戏的兴趣。

游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。

由于本程序简单易操作,交互性好,对用户没什么特别要求。

一般用户经过几分钟练习都可以熟悉本游戏的规则。

二、需求分析
贪吃蛇游戏是一个小型益智游戏,它可以锻炼人们的反应能力,尤其是在开发人的智力方面,很受人们的欢迎。

本组该次小游戏程序设计包含二维数组、鼠标操作及图形化函数等方面知识。

具体需求概
要如下:
1.初始化游戏界面为700*600大小。

2.在HTML中用格子初始蛇长及蛇的位置,用上、下、左、右控制方向进行游戏。

游戏过程中,每吃到一次食物蛇身增加一格,分数加10分。

3.蛇头咬到蛇尾或蛇头接触边框,则停止游戏,显示累计分数,游戏结束。

三、运行环境
本程序对硬件配置要求不高,只需要设备支持HTML5即可。

适合在笔记本、iPad、智能手机运行。

四、设计概要
1.初始化模块:
屏幕初始化,屏幕初始化用于显示游戏信息;
2.游戏界面模块:
设计灰色的边框,边框内用白色灰框格子填充作为游戏活动区域;3.游戏运行模块:
运用函数控制蛇长及食物的关系,并使用键盘控制方向,空格键暂停(继续)。

4.判断模块:
头咬到尾或头接触活动区域外围,则游戏结束,显示累计分数。

5.控制键
控制说明:用户可以从界面按钮和键盘上、下、左、右和空格键控制游戏。

6.使用界面
五、详细设计
1.SEO优化
SEO是由英文Search Engine Optimization缩写而来,中文意译为“搜索引擎优化”。

SEO 是指通过对网站内部调整优化及站外优化,使网站满足搜索引擎收录排名需求,在搜索引擎中提高关键词排名,从而把精准用户带到网站,获得免费流量,产生直接销售或品牌推广。

优化内容
内部优化META标签优化:例如:TITLE,KEYWORDS,DESCRIPTION等的优化。

添加<link rel="shortcut icon" href="favicon.ico"/>title的小logo增加美化效果。

2.画图函数
3.控制布局
按钮点击onclick事件,给按键赋相应的键值。

对页面进行控制,可以通过键盘及页面显示按钮进行控制游戏。

4.按键响应
判断前进方向,禁止反方向。

例如,当贪吃蛇正在向下走,点击上键不做任何改变,继续向下走。

点击空格、页面暂停按钮,即可停止游戏。

5.方向控制
对toGo函数的值进行判断,确定蛇的前进方向。

6.启动游戏
启动游戏,调用添加食物函数,画图函数。

7.死亡判断
1).撞到墙壁。

2).撞到自己。

六、停止游戏
1.撞墙停止
2.撞到自己
仅供个人参考使用,如有错误请联系livechange@。

相关文档
最新文档