搜档网
当前位置:搜档网 › 基于VC++贪食蛇游戏的设计与实现

基于VC++贪食蛇游戏的设计与实现

基于VC++贪食蛇游戏的设计与实现
基于VC++贪食蛇游戏的设计与实现

XXX学院

面向对象程序设计(c++/vc++)

课程设计报告

题目:基于VC++贪食蛇游戏的设计与实现

学号:

班级:

小组成员:

指导教师:

所属系部:

2014年6月3 日

课程设计任务书

摘要

本设计实现了一个简单的贪食蛇小游戏,该游戏不仅实现了简单的游戏操作功能,还实现了灵活的运作功能,而且具有简洁大方的图文外观。此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,给玩家一个简易有趣的游戏。本系统开发平台为Windows XP,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。

关键词:贪食蛇;MFC

Abstratc

This design implements a simple bulimia small snake game, the game is not only realize the function of simple operation, and realize the function of flexible operation, and has a concise and easy by appearance. This design according to the method of software engineering, system has a good interface and the interaction of the necessary information, allow the operator to quick and easy to operate, easy to give players a fun game. This system development platform for Windows XP, using c + + program design language, in programming, using the structured and object oriented method to solve the problem.

Key words: Gluttony Snake; MFC

目录

摘要.......................................................................................................................................................... I ABSTRATC................................................................................................................................................. I I 1引言: (1)

1.1课题背景介绍 (1)

1.2MFC简介 (1)

2系统分析 (2)

2.1可行性分析 (2)

2.2系统需求分析 (2)

2.2.1课题需求 (2)

2.2.2功能需求 (3)

2.2.3游戏环境需求 (3)

2.2.4游戏界面需求 (4)

2.3程序分析 (6)

2.3.1游戏大体框架 (6)

2.3.2主要游戏函数 (6)

2.3.3游戏程序整体间调用关系图 (7)

3程序设计 (8)

3.1游戏教程的知识点 (8)

3.2游戏基本流程和大体思想 (8)

3.3游戏程序模块实现函数说明 (9)

3.4程序变量声明 (15)

4 系统实现 (23)

4.1坐标位置信息模块实现 (23)

4.2键盘方向键操作模块实现 (23)

4.3蛇身撞界与分数计算模块实现 (23)

4.4食物重新生成模块实现 (24)

4.5游戏测试 (25)

5 总结 (26)

参考文献 (27)

附录 (28)

1引言

在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。

1.1课题背景介绍

贪食蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己所学的知识加以应用,二是一直以来贪食蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我们的编程能力不是很强,但是我们有信心,在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此我们选了这个题目作为我们的课程实训。

1.2 MFC简介

MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries)以C++类的形式封装了Windows 的API,它包含了窗口等许多类的定义。各种类的集合构成了一个应运程序的框架结构,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows 的内建控件和组件的封装类。MFC 6.0 版本封装了大约200 个类,其中的一些可以被用户直接使用。例如CWnd 类封装了窗口的功能,包括打印文本、绘制图形及跟踪鼠标指针的移动等;CsplitterWnd是从CWnd 类派生出来的,继承了基类或称父类CWnd 类的所有特性,但增加了自己的功能,实现拆分窗口,使窗口至少可被拆分成两个窗口,用户可以移动两个窗口之间的边框来改变窗口的大小;CtoolBar 类可以定义工具等。MFC 命名的惯例是类的名字通常是由“C”打头;成员变量使用前缀“m_”,接着使用一个字母来指明数据类型,然后是变量的名称;所有的单词用大写字母开头。

2系统分析

2.1可行性分析

贪食蛇游戏是一种简单的大众的游戏,自计算机实现以来,十分深受广大电脑玩家的喜爱,做一个简单的贪食蛇游戏。贪食蛇的核心玩法是一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个方向键控制蛇向上接着又出现食物,等待被蛇吃掉,这时蛇身增长一节,同时获得10分。如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。并且可以在游戏开始前自由选择游戏难度,游戏过程中可暂停游戏,并有积分系统,且积分每满一定值,蛇的运行速度会逐步增加。

2.2系统需求分析

2.2.1课题需求

接到课程设计任务后,我们对曾经非常感兴趣的几款经典小游戏作了分析并筛选,然后发现使用MFC类库都可以完成这些游戏的编译,但是我们刚刚学习,还不能完全掌握MFC类的使用和复杂的算法,但是我们相信通过一个简单的贪吃蛇游戏可以让我们对MFC得到充分的锻炼。贪吃蛇游戏作为一款经典小游戏,版本多样,娱乐性也很高,适合在闲暇时放松心神。并且可在多个平台上实现,程序简单易懂,非常适合MFC初学者学习制作。

2.2.2功能需求

1.使用MFC编译的游戏,我们预计实现游戏的开始、暂停、继续、等级的提升、难度的增加。

2.重要的MFC程序代码需求

1) CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。

2) CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

3) CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。

4) CDialog对话框

5) CPen笔,画线

6) CBrush刷子,填充

7) CBitmap位图

8) CRgn区域,指定一块区域可以用于做特殊处理。

9) CString字符串。封装了C中的字符数组,非常实用。

10) CPoint点,就是(x,y)对

11) CRect矩形,就是(left,top,right,bottom)

2.2.3游戏环境需求

游戏要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等)

(1)操作系统:Windows NT Windows XP Windows7

(2)应用软件:Microsoft Visual Studio 2010

2.2.4游戏界面需求

(1)游戏说明界面:

图2.1游戏说明界面(2)游戏开始界面:

图2.2游戏开始界面

(3)游戏运行界面

图2.3游戏运行界面(4)游戏结束界面

图2.4游戏结束界面

2.3程序分析

2.3.1游戏大体框架如下图所示

图2.5游戏大体框架

2.3.2主要游戏函数

void CSnake2View::OnDraw(CDC* pDC)

void CSnake2View::oninit(void)

void CSnake2View::OnStart()

void CSnake2View::OnPause()

void CSnake2View::OnContinue()

void CSnake2View::OnExit()

void CSnake2View::OnIntroduce()

void CSnake2View::OnRestart()

void CSnake2View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) void CSnake2View::OnRButtonDown(UINT nFlags, CPoint point)

void CSnake2View::OnTimer(UINT_PTR nIDEvent)

2.3.3游戏程序整体间调用关系图

图3.6游戏程序关系图

3程序设计

3.1游戏教程的知识点

1、CView类中的消息响应

2、控件的消息响应

3、基于CView类内的具体游戏实现

4、数组

5、游戏图形的实现用CDC类实现。

3.2游戏基本流程和大体思想

1、定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的

初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。

2、用数组初始化长度为3的贪吃蛇,并且默认食物未出现

3、在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer()

函数让系统提供一个时钟节拍,更新游戏

4、具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中

还包括根据蛇的速度和长度来进行游戏难度的改变。

5、具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown()

来响应玩家的实际操作。

3.3游戏程序模块实现函数说明

第一部分:

本版游戏的具体实现是在CViewl类中实现,所以其他类不用添加任何代码。

由于此次贪吃蛇需要MFC的开发环境,所以打开Visual Studio2010新建一个MFC单文档工程,取名Snake2。

然后单击菜单栏里的“项目”,找到“类向导”,单击打开,在类名中选择Snake2View添加以下Windows信息

1 WM_KEYDOWN

2 WM_RBUTTONDOWN

3 WM_TIMER

并且添加虚函数OnInitialUpdate()

OnInitialUpdate()的功能如下:

视图窗口完全建立后第一个被框架调用的函数。框架在第一次调用OnDraw 前会调用OnInitialUpdate,因此OnInitialUpdate是设置滚动视图的逻辑尺寸和映射模式的最合适的地方。

时间上,两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生,然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作所以我们要用这个函数来进行贪吃蛇的初始化工作。再者还要添加一个成员函数oninit()进行贪吃蛇外观的初始化。

图3.1添加消息

图3.2添加虚函数

再者是设计游戏的一些控件来控制“开始游戏” “结束游戏” 和“暂停

游戏”“退出游戏”“重新开始”“游戏介绍”。

我们可以点击“资源视图”然后找到“Menu”文件夹,选“IDR_MAINFRAME”进行控件的具体设计,这里我们在Menu文件夹中把“IDR_MAINFRAME”中默认的控件全部删除

右键其中的标题栏,点击属性,会得到一个菜单栏标题,我们分别建立1个菜单栏标题。这里我们分别建“游戏操作”“游戏说明”。

图3.3菜单栏标题

点击并且在已有控件中的列表中点击属性,进行“菜单项目属性”的设置。我们本别建立的属性“标明”与对应的ID有

A.开始游戏ID_START

B.暂停游戏ID_PAUSE

C.继续游戏ID_CONTINUE

D.退出游戏ID_EXIT

E.重新开始ID_RESTART

F.游戏介绍ID_Introduce

此处控件的设计是“可见即可得”的控件操作,成功设置ID之后

1、右键“游戏开始”。

2、点击“添加事件处理程序”。

3、在Message Maps页面,在要进行消息响应的控件ID列表Object IDs中上

选择对应的ID, 这里我们选择IDM_START,具体实现的环境是CView类,所以我们必须把“Class name”的默认“CMainFrame”改为“CView类”,并且在“Messages”类型设置中,用“COMMAND”设置为其为命令消息。其余各项也按照同理进行设置。

图3.4添加事件处理程序

图3.5添加事件处理程序向导

第二部分

具体实现游戏、

Step 1

首先我们在文件“Snake2View.cpp”开头处分别定义蛇和食物的全局变量struct Snake //蛇的全局变量

{

int x,y;

int len;

int direct;

}Snake[50];

struct Food //食物的全局变量

{

int x;

int y;

int isfood;

}Food;

图3.6蛇与食物的全局变量

接着把那窗口往下拉,找到”void C Snake2V iew::OnInitialUpdate()”,添加如下代码

void CSnake2View::OnInitialUpdate()

{

CView::OnInitialUpdate();

Snake[0].x=10;

Snake[0].y=10;

Snake[1].x=11;

Snake[1].y=10;

Snake[2].x=12;

Snake[2].y=10;

Snake[0].direct=3;

Snake[0].len=3;

Food.isfood=1;

// TODO: Add your specialized code here and/or call the base class

}

3.4程序变量声明

代码说明一:

1、初始化贪吃蛇起初有3个节点,长度为3,起始坐标;食物默认为 1无0有。

2、Step 2 找到类视图中的“CSnake2View”单击右键找到“属性”,然后再属

性栏里找到“消息”按钮,点击,然后在那里找到“WM_KEYDOWN”添加函数,然后回到Snake2View.cpp,添加代码如下:

void CSnake2View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) {

switch(nChar)

{

case VK_UP:if(Snake[0].direct!=2)Snake[0].direct=1;break;

case VK_DOWN:if(Snake[0].direct!=1)Snake[0].direct=2;break;

case VK_LEFT:if(Snake[0].direct!=4)Snake[0].direct=3;break;

case VK_RIGHT:if(Snake[0].direct!=3)Snake[0].direct=4;break;

}

CView::OnKeyDown(nChar, nRepCnt, nFlags);

}

3、OnKeyDown函数的第一个参数 UINT nChar 是接收用户键入的信息,然后我

们用switch进行选择判断

贪吃蛇游戏开发设计

广州商学院 课程论文题目:贪吃蛇游戏开发设计 课程名称面对对象程序设计 考查学期2016/2017学年第 1学期姓名陈思明李权康 学号201506110047 201506110044 专业计算机科学与技术 指导教师包汉宗

移植性和平台无关性等优点,得到了广泛地应用,它以其友好的开发界面、强大的组件支持等优点,得到广大程序员的 接受和认可。 “贪吃蛇”游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本文基于Java技术,开发了一个操作简单、界面美观、功能较齐全的“贪吃蛇”游戏。整个游戏程序分为二个功能模块,四个类模块,实现了游戏的开始、暂停、结束。通过本游戏的开发,达到学习Java技术和熟悉 软件开发流程的目的。 关键词:贪吃蛇,Java,游戏

一、可行性分析 1.1经济可行性 游戏开发至今已经有30多年,在这个短暂的时期里,随着硬件的水平的提高。游戏开发新技术层出不穷,经典游戏比比皆是,游戏这个名称一直存在于每个人的日常生活中。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色.而从技术方面来看,现在的java技术也融入了手机中。这些都为开发的这款贪吃蛇游戏提供了条件。 1.2技术可行性 本次设计我将主要运用java语言来完成。Java语言是一种跨平台,适合于分布式计算环境的面向对象编程语言,用Java写的应用程序不用修改就可在不同的软硬件平台上运行。 由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.sodocs.net/doc/0b3888300.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

1贪吃蛇可行性分析报告

软件设计与体系架构实验报告 学院:计算机科学与技术学院 学号:0121210680330 姓名:郭烨华 班级:sy1201 课题名:贪吃蛇游戏开发

贪吃蛇开发并进行动态分析 指导老师:陈明俊 组员:李安福 郭烨华 分工明细 成员分工: 职责姓名任务 项目分析经理、程序员李安福可行性分析,系统功能分析,编程 系统设计师、程序员郭烨华概要设计,开发设计、编程 目录 一、引言 (1)

1.1编写目的 (1) 1.2 编写主题 (1) 1.3 游戏运行环境 (1) 二、可行性研究的前提 (1) 2.1游戏基本功能 (1) 2.2 要求 (3) 2.3目标 (3) 2.4 进行可行性研究的方法 (3) 2.5 评价尺度 (4) 三、对现有系统的分析 (4) 3.1 处理流程和数据流程: (4) 3.2 工作负荷 (4) 3.3 人员.................................................................................................. 错误!未定义书签。 3.4 设备 (4) 3.5局限性 (4) 3.6 改进要求 (5) 四、所建议的系统 (5) 4.1 对所建议系统的说明 (5) 4.2处理流程和数据流程 (5) 4.3改进之处 (6) 4.4 影响 (6) 4.4.1对设备的影响: (6) 4.4.3 对用户单位机构的影响 (7) 4.4.4 对系统运行过程的影响 (7) 4.4.5 对地点和设施的影响 (7) 4.5 技术条件方面的可行性 (7) 五、可选择的其他系统方案 (7) 六、投资及效益分析 (8) 6.1支出 (8) 6.1.1 基本建设投资 (8) 6.1.2 其他一次性支出 (8) 6.1.3 非一次性支出 (8) 6.2 收益 (8) 6.2.1 一次性收益 (8) 6.2.2 非一次性收益 (8) 6.2.3 不可定量的收益 (8) 6.3 投资回收周期 (9) 6.4 敏感性分析 (9) 七、社会因素方面的可行性 (9) 7.1 法律方面的可行性 (9) 7.2 使用方面的可行性 (9) 八、结论 (9)

《贪吃蛇游戏课程设计》报告资料整理

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量 }food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动

贪吃蛇游戏开发与实现

南京晓庄学院 手机游戏开发技术报告 贪吃蛇游戏开发与实现 所在院(系): 数学与信息技术学院 学号:XXXXXXX 学生姓名:XX 年级专业: 08计算机科学与技术 指导教师: XXX 提交日期: 2011 年 11 月

第一章、开发平台与技术概述 (5) 1.1开发环境 (5) 1.2 WTK、ECLIPSE与JAM的介绍 (5) (1)WTK (5) (2)Eclipse (5) 1.3 JA V A语言介绍 (6) (1)面向对象 (6) (2)平台无关性 (6) (3)分布式 (6) (4)可靠性和安全性 (6) (5)多线程 (6) 第二章J2ME及其体系结构概述 (7) 2.2体系结构 (7) 2.3 移动信息设备简表概述 (7) 第三章手机游戏开发过程 (9) 3.2 详细设计 (9) 3.2.1 代码设计 (10) 第四章程序的调试与运行 (14) 4.2 游戏的运行环境 (16) 第五章总结 (17) 致谢 (18) 参考文献 (19)

摘要 随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的过程。 本次论文重点在于J2ME技术的应用,通过对手机游戏开发和MIDP 2.0的研究,开发了一款操作简单,并有一定可玩性的手机空中射击游戏。在游戏中玩家可以通过手机的方向键控制己方飞机的移动,己方飞机自动发射子弹。敌方飞机按照预定程序移动并自动发射子弹。当我方飞机发射子弹打中敌方飞机,敌方飞机爆炸,同理,敌方飞机发射子弹打中我方飞机时我方飞机爆炸。当双方飞机相撞时都爆炸。 关键词J2ME,手机游戏,MIDP,SPRITE,永久性数据

贪吃蛇的设计与实现

《项目工程实践》课程结题报告 课题名称贪吃蛇的设计与实现 分数 日期:__2015__年_5_月_20_日

目录 目录 (2) 一、需求分析 (3) 二、概要设计 (3) 三、逻辑设计 (6) 四、应用程序 (10) 五、测试...................................................................................... 错误!未定义书签。 六、部分源程序代码

一、需求分析 本系统主要是完成贪吃蛇游戏的基本操作。用户可以自己练习和娱乐。本系统需要满足以下几点要求: (1) 利用方向键来改变蛇的运行方向。 (2) 空格键暂停或继续游戏,并在随机的地方产生食物。 (3) 吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。 二、概要设计 (1)游戏处理流程。 本次游戏处理流程如图1所示。 图 1 游戏流程设 计 进入游戏画面 单机“begin ”按钮,游戏 开始,蛇开始随即出现 键盘操作: “左移” “右移” “向下” “向上” 没有吃到实物且蛇碰到边界或者自身 游戏中途欲退出, 游戏结束 单击游戏界面上的“×”

(2)功能模块设计。 软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块,决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。 (3)游戏功能 本系统主要完成一下几个方面的功能: 1. 游戏控制功能——包括游戏的开始、暂停、退出 2. 界面布局 3. 其他辅助功能 (4)总设计模块的划分 根据游戏游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计,如图2所示。 (5)游戏煮界面模块 游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮。游戏界面主框架的主要结构如图3所。 贪吃蛇游戏 游戏主界面模 块 游戏控制模块 图2游戏总设计模块 游戏的主界面框架 游戏图形区域界游戏控制按钮界 图3游戏主界面框架

贪吃蛇游戏程序设计实验报告

Windows编程大作业贪吃蛇设计与实现 学校:武汉轻工大学 院系: 班级: 姓名: 学号:

2015 年12月16日 目录 一、题目介绍 二、设计目的 三、详细设计 3.1贪吃蛇本体设计 3.2贪吃蛇食物设计 3.3游戏界面设计 3.3.1游戏初始化 3.3.2游戏开始 3.3.3游戏暂停 3.3.4游戏退出 3.3.5游戏总界面 3.3.6游戏区域与背景 3.3.7关于SNAKE 3.4玩法规则设计 3.5核心设计 四、功能测试 五、总结 六、参考文献

一、题目介绍: 编写一个基于MFC的小游戏。 基本要求: 1、实现一个小游戏 2、实现基本游戏控制功能 3、具有游戏数据保存功能 4、界面布局合理、美观; 二、设计目的: 通过使用vc++6.0实现一个小游戏的课程设计,进一步掌握MFC的高级使用方法和锻炼自己动手写程序的能力。了解游戏设计的整个过程,通过熟练使用MFC来设计游戏。程序主要包括:游戏界面设计,游戏菜单栏设计,游戏初始化,游戏控制等。培养和锻炼开发游戏的能力。 三、详细设计 3.1贪吃蛇的本体设计 贪吃蛇的头部拥有一个坐标(x,y),蛇体有一个长度len,蛇有一个运动方向direct,故定义一个结构体如下: struct Snake { int x,y; int len; int direct; }Snake[50]; 3.2贪吃蛇食物设计 贪吃蛇的食物有一个坐标(x,y),此食物有一个标志isfood,当isfood为0时,表示食物还没被吃,为1时,表示被吃。 struct Food { int x; int y; int isfood; }Food;

java课程设计贪吃蛇游戏设计

前言 Java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景。于是改造了Oak,以“Java”的名称正式发布。 Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。 与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。 Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

基于JavaGUI的贪吃蛇游戏

开发背景 作为一个经典的游戏,贪吃蛇设计简单,实用和娱乐性高,是90后童年的美好回忆。对于贪吃蛇传统的玩法,大家众所周知,即:玩家通过控制游戏手柄上下左右四个方向控制蛇的前进方向,每当吃到一个东西就会增加相应的分数,蛇的身子会越吃越长,蛇身越长游戏的难度就越大,不能咬到自己的身体,也不能碰到墙壁,积累到一定分数就可以通过此关,进入到下一关。 需求分析 该次小游戏程序设计包含二维数组、方向键操作及图形化函数等方面知识。 具体需求概要如下: 1、游戏界面初始化,显示背景区域和活动区域 2、按方向键上下左右进行游戏的控制 3、当蛇头吃到食物时,蛇身长度加一,分数增加 4、当蛇头撞墙或者碰到自身时,游戏结束,显示“GAME OVER”和累加得分 里面存在的事物:地图、蛇、食物 游戏规则: 1.蛇初始化时是3个节点,一开始蛇是出现在地图中间位置的 2.蛇吃到食物会长一节 3.蛇咬到自己会死 4.蛇撞墙会死 5.食物随机生成的,食物不长在背景上,不长在蛇身上。 使用技术 本次课程使用JAVA来完成游戏的设计,使用二维数组存储背景信息,使用List存储蛇身信息,使用Swing完成图形界面化。 功能开发 概要设计 1、初始化模块:屏幕初始化,屏幕初始化用于显示游戏信息“贪吃蛇”。 2、游戏界面模块:设计边框和贪吃蛇活动区域

3、游戏运行模块:运用函数控制蛇长及吃食物关系,使用方向键控制方向。 4、判断模块:蛇头撞墙或者碰到自己身体,则游戏结束,显示分数 实现步骤 本节分为两个部分,一部分为核心逻辑,即算法处理逻辑;另一部分为界面搭建。游戏最核心的部分为算法逻辑部分。先讲算法逻辑,最后再进行界面的搭建。 第一部分分为几个小节 第二部分分为几个小节 创建工程 本次小游戏是一个单独的项目,所以需要创建单独的工程。 地图 首先定义地图的长宽,定义数组存放地图上的点 // 地图的宽(行) public static final int width = 35; // 地图的高(列) public static final int heigth = 8; //二维数组存放地图上的点 private char[][] background = new char[heigth][width]; 我们需要的地图为: 所以需要初始化地图,四周为墙壁,中间为空白部分,供蛇移动。这里使用’*’代表墙壁,使用’ ’代表空白部分。边界值判定:二维数组的第一行和最后一行,其余行的第一列和最后一列均为墙壁。 初始化方法: // 初始化地图 public void initBackground() { for (int rows = 0; rows < background.length; rows++) { for (int cols = 0; cols < background[rows].length; cols++) { if (rows == 0 || rows == (heigth - 1) || cols == 0 || cols == (width - 1)) { background[rows][cols] = '*'; } else {

贪吃蛇游戏详细设计说明书

详细设计说明书 1 引言 1.1 编写目的 本说明书在概要设计的基础上,对贪吃蛇游戏的各模块、程序、子系统分别进行了实现层面上的要求和说明。软件开发小组的产品实现人员阅读和参考本说明进行代码的编写和测试。 本说明书预期的读者是软件开发小组的产品实现人员。 1.2 背景 说明: 系统名称:贪吃蛇游戏 任务提出者:手机策划人员 开发者:软件开发小组的产品实现人员 用户:NOKIA手机用户 运行该程序系统的计算中心:NOKIA手机芯片 1.3 定义 1.节: 一条蛇可以看成由许多正方形的“小格子”拼凑成,称作节。节是蛇身上最小的单位。 2.链表: 用来保存每一段的状态,链表的元素单位是节。且链表的第一个元素表示蛇的头部。 3.坐标系: 以左上角那点为(0,0),向右则x递增,向下则y递增。 1.4 参考资料 张海藩:《软件工程导论》第五版清华大学出版社 肖刚等:《实用软件文档写作》清华大学出版社

2 程序系统的组织结构 2.1每个模块和子程序的名称、标识符: 1Ground类: 1)private int TYPE; 2)public int[][] rocks=new int[Global.WIDTH][Global.HEIGHT]; 3)public void setGround(int type){} 根据不同的Type值将rocks的不同下标的元素设为1,其他元素为0。 4)public boolean isSnakeEatRock(Snake snake){} 判断蛇头的所在的位置在数组rocks中的值是否为1,如果是1,则表示蛇吃 到了石头,返回TRUE,否则返回FALSE。 5)public Point getPoint(){} 产生一组随机数(x,y),是食物的坐标 6)public void drawMe(Graphics g){} 将数组rocks中值为1的元素填充为石头颜色。 2Snake类: 1)public static int x,y; 2)private int oldDirection,newDirection; 用于判断newDirection和oldDirection是否为相反方向,用于选取有效方向。 3)private Point oldTail; 用于判断蛇头是否和蛇身的某个节点的坐标重合,即蛇是否吃到自己。 4)public LinkedList body=new LinkedList(); 5)public void die(){} 设置变量life=FALSE;使控制进程的条件为假,进程结束。 6)public void move(){} 实现蛇身沿着蛇头的轨迹移动 7)public void changeDirection(int direction){} 根据方向键,改变蛇头的x、y的值,即改变方向 8)public void drawMe(Graphics g){}//把属于蛇的格子画出来 9)private class SnakeDriver implements Runnable{}//蛇不停走动 3Food类: 1)public void drawMe(Graphics g){} 根据产生的一组随机坐标,在其坐标处画出食物 4Controller类: 功能:处理按键事件及鼠标点击事件,处理逻辑。根据不同的情况向Snake,Food,Ground发出不同的命令。 实现接口snakeMoved,蛇每移动一步,就要判断一次,蛇是否吃到石头、是否吃到自己,是的话就snake.die()并停止计时;不是则不进行任何操作。如果吃到食物,就要加分、重画食物、蛇身加长。 实现(N)NewGame功能、(E)Exit功能、(R)Resume功能、(L)LowLevel功能、(H)HighLevel功能、(P)Pause功能。 5GamePanel类: 功能:画出Snake,Food,Ground,并实现重新显示

贪吃蛇游戏程序设计

测控技术与仪器专业课程设计题单 班级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语言编程和程序调试的基本技能。 通过游戏程序的设计训练可以提高自己的基本技能,更好地掌握字符串的表示方法和字符串函数的功能、Tc图形操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高自己编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高运用C语言解决实际问题的能力,巩固C语言语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。 C语言课程应注重边学边练,但由于课堂教学和实验的深度和广度有限,练习的深度也受到一定限制。为了弥补这一点,学校开设了本课程设计。它比教学实验复杂一些,涉及的深度广些并更加接近实用。目的是通过课程设计的综合训练,培养我们实际分析问题、编程和动手能力,最终目标是想通过这种形式,帮助我们系统地掌握程序设计的主要内容,更好地完成学业。 这次课程设计的主要特点如下: 1.函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序 十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增

基于C语言的贪吃蛇游戏开发与设计

计算机科学与技术学院 学年设计说明书(论文) 作者:呼斯勒都仍 学号:159040642003 院系:计算机科学与技术学院(软件外包) 专业:计算机科学与技术 题目:基于C语言的贪吃蛇游戏开发与设计

目录前言 第一章概述 1.1中国手机游戏产业现状 1.2中国手机游戏的未来展第二章开发工具的简介 2.1可行性分析 2.2 功能性分析 第三章 3.1概要设计 3.1功能介绍 3.2概要设计图 第四章详细设计 第五章

前言 C语言是目前世界上流行、使用最广泛的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。 常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等...... C语言的发展历史 C语言的发展颇为有趣。它的原型ALGOL 60语言。 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统 而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE 在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言

基于labview的贪吃蛇游戏程序设计

成绩评定表

课程设计任务书

目录 1 目的及基本要求 0 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小 蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为 “苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的 身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 0 4.1 运行结果 (8)

1 目的及基本要求 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。 2 贪吃蛇游戏设计原理 贪吃蛇游戏大体上可分为以下几个部分: 1) 控制部分就是通过输入输出来控制蛇的运动 2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算 3) 图象显示部分就是将游戏显示出来 本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋; 4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续; 5.游戏可以有多种难度选择等 3 贪吃蛇游戏设计与仿真 3.1 前面板设计 采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。对XY图的属性做如下修改:

基于java的贪吃蛇游戏开发

贪吃蛇大战的设计与实现 专业: 姓名: 班级: 学号: 指导教师:

目录 前言 (4) 1.JAVA语言的概述及开发工具 (4) 1.1Java语言特点 (4) 1.1.1 平台无关性 (4) 1.1.3面向对象 (5) 1.2 J2ME介绍 (5) 1.3 关于ECLIPSE (6) 1.4 WTK介绍 (6) 2.需求分析 (7) 2.1游戏的介绍 (7) 2.2游戏开发的可行性 (7) 2.3设计目的 (7) 2.4游戏需求 (7) 2.4.1游戏界面需求 (8) 2.4.2游戏形状需求 (8) 2.4.3键盘事件处理 (8) 2.4.4显示需求 (8) 2.4.5接口控制 (8) 2.4.6环境介绍 (8) 3.详细设计 (9) 3.1 绘制蛇身 (9) 3.2创建初始“蛇”及“蛇”的移动 (9) 3.3 吃掉食物,蛇身增长 (10) 3.4随机产生食物 (10)

3.5键盘事件处理 (11) 3.6 判断游戏结束 (12) 4游戏测试与发布 (13) 4.1游戏运行的效果图 (13) 4.2 测试结果 (13) 5.自我评价和总结 (13) 5.1遇到的问题及解决办法 (13) 5.2 总结 (14) 6.参考资料 (14)

前言 随着3G的到来,让人们的目光聚集到一个新兴的互联网终端——手机上。手机的随身性让玩家有了随时随地完游戏的可能。据我调查行业分析师也对这一行业持普遍的乐观态度。yramid Researcher 的最新报告显示,手机游戏市场正在稳步发展。用户数从2008年的1.83亿到现在将增长到3亿。据报告分析,2014年,市场规模有望达到180亿美元。 手机游戏的发展有以下推动因素 1.更好更快的无限网络以及易于操作的手机终端改善了用户 的体验; 2..触摸屏,3D动画处理能力以及在线互动能力让游戏开发游 戏做的更好; 3.苹果应用商店模式刺激作用。 J2ME是一种针对移动电话和PDA这样的小型设备的Java语言。大部分的手机厂商都迫切希望Java手机推广应用。上千万的手机已经到了消费者手中。它已经极大的提高了移动电话支持游戏的能力。它有着比SMS或W AP 更好控制的界面。允许使用子图形动画。并且可以通过无限网络连接到远程服务器。支持Java的手机的普及,所以目前它成为最好的移动游戏开发环境。J2ME不是手机上配置的唯一解释语言,但是它是许多厂商支持的行业标准。一些专用的解释语言也在某些区域有上着上佳的表现。如北美的Qualcomm的BREM 和一些韩国运营上支持的名为GVM的标准。 基于以上分析,Java手机游戏的开发具有重要的意义。 1.Java语言的概述及开发工具 1.1Java语言特点 1.1.1 平台无关性 Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java 接口。Java的数据类型与机器无关。 1.1.2安全性

单片机贪吃蛇课程设计报告

电气与信息工程学院 单片机课程设计报告 一、设计任务及要求 基本功能: 制作一个8*8点阵的贪吃蛇游戏,系统以单片机的C语言的软件设计,系统通过LED点阵屏为载体显示数据,并用五个输入端表示五个控制键(上下左右及加速)。系统硬件部分由STC89C52RC单片机,8*8点阵屏,5个按键,软件部分在keil环境下用C51语言编写,包括游戏初始化蛇的节数,以及障碍墙壁,游戏结束时自动复位。 具体要求: 1、用四个按钮控制贪吃蛇的行径,一个按钮控制贪吃蛇的加速,蛇的初始长度为2点,设置墙壁。 2、蛇吃到长度为1点的食物时,自身长度增加1点。 2、速度按钮带有一次加速,按两下速度按钮蛇的行进速度回到初始值。 3、当蛇碰到墙壁或自己的身体时游戏结束。 4、用proteus设计,仿真基于STC89C52RC单片机的8x8点阵贪吃蛇的硬件电

路。 5、游戏结束,系统自动复位。 二、硬件电路设计 本系统以STC89C52RC为核心,设置12MHz的晶振,使得单片机有合理的运行速度。LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示程序的运行情况,是模块化的显示组件,本设计采用8*8共阳红色点阵显示屏,用来显示贪吃蛇的游戏画面。五个独立按键控制蛇的游走方向(上下左右)和加速减速的功能。贪吃蛇是一款经典的小游戏,玩家通过按键操控贪吃蛇不断地吃食物,蛇身逐渐伸长,当蛇碰到蛇身和墙壁时游戏结束。 需要注意的是实际元件中,点阵的封装不尽相同,因此需要测试出每个引脚的功能,以便正确连线。注意,每个像素点的额定电压在3v左右,电压过大将会彻底损坏。 三、系统软件设计 软件方面采用了C51编写代码,代码编写模块如下图: 核心代码主要为游戏处理、信息处理和按键处理。编写游戏的功能代码,先定义游戏的数据结构和常量。其中食物的数据结构采用结构体定义,两个unsigned char变量分别定义为食物的横纵坐标;蛇的身体定义为长度最大值为20的数组,游戏中贪吃蛇长度达到39,游戏通关结束。 游戏处理模块为贪吃蛇在游玩过程中遇到的需要被处理的情况,主要实现的功能包括以下四个方面,即移动、食物、死亡和加速。 1、移动

游戏基础课程设计

枣庄学院 信息科学与工程学院课程设计任务书题目:贪吃蛇游戏的设计与开发 专业:计算机多媒体技术专业 课程:游戏基础 姓名: 姓名: 姓名: 指导教师:孙晓飞职称:助教 完成时间:2013年12 月----2014年1 月 枣庄学院信息科学与工程学院制 2013年12月29日

课程设计任务书及成绩评定

目录 引言 (5) 1.工作计划 (5) 1.1 主要任务阶段划分 (5) 1.2 工作任务分工 (5) 2.需求分析 (6) 2.1 概述 (6) 2.2 用户分析 (6) 2.3 约束条件 (6) 2.4 功能需求 (6) 2.5 用户界面需求 (7) 3.设计与实现 (7) 3.1 概述 (7) 3.2 详细设计 (7) 3.2.1类的抽象与设计 (7) 3.3 主要程序文件 (8) 3.4开发环境以及部署环境要求 (10) 3.5主要源码 (10) 4.测试 (14) 4.1 概述 (14) 4.2 测试环境 (14) 4.3 测试计划 (14) 4.4测试项目及结果 (14) 5.工作总结 (15) 5.1 工作成果 (15) 5.2 过程分析 (15) 5.3 经验教训及其分析 (15)

引言 由于传统的贪吃蛇只是在一个宽阔的用户区进行游戏。对于蛇只是在区域四周有障碍墙壁,这样也许在一开始不会有太大的难度和成就感。 又由于人们曾经也钟爱一种迷宫游戏,它主要是考察玩家的观察力,看能否在最短的时间里走出迷宫。 基于以上两个游戏,我们准备利用本学期学到的windows界面程序设计方法将两个游戏有机结合起来,使用户既能体验贪吃蛇中看着蛇身不断加长而绕出各种折线的成就感,又能感受到在迷宫中找寻出路的紧张心情,而且迷宫的出现使蛇遇到的障碍遍布游戏区,这样用户就更能展示一下自己操作的高水平。 1 工作计划 1.1主要工作阶段划分 1.2工作任务分工

贪吃蛇游戏系统课程设计

一、课程设计的目的和要求 1.通过C#课程设计,使学生能将学到的面向对象的程序设计思想用到具体的工作和学习中,加深对类与对象的理解,要求学生能够对现实生活中许多具体的事物抽象出类,并掌握继承与派生,基类、虚方法和抽象方法和多态性的概念。 2.通过这次课程设计掌握《C#语言程序设计》的编程思想,为后续课程打下基础。 3.培养我们实际操作能力和实践能力,为以后的工作打下坚实的基础。 二、课程设计内容 编写一个C# GUI版贪吃蛇小游戏程序 我们的需求是: 一条蛇在封闭的围墙内爬行,玩家可以通过方向键来控制蛇 的运动方向,围墙内随机出现一食物,蛇头碰到食物时表示 食物被吃掉,此时蛇身加长一节,同时游戏成绩加10分,接 着又出现食物等待蛇吃周而复所,直到蛇撞墙或身体交叉而 死游戏结束。 基本要求: 1、要求利用C#完成游戏的设计 2、要求在设计过程中建立清晰的类层次 3、程序应具有容错功能 4、程序界面美观,逻辑层次清楚,结构合理,文档清晰

三、课程设计基本要求 1) 要求利用面向对象的方法以及C#的编程思想来完成系统的设计; 2) 要求在设计的过程中,建立清晰的类层次; 3) 在系统中至少要定义四个类,每个类中要有各自的属性和方法; 4) 在系统的设计中,至少要用到面向对象的一种机制。 5) 程序应具有容错功能。 6)程序运行结果正确,操作方便,界面美观,逻辑层次清楚,程序 结构合理,文档规范清晰。

目录 1:需求分析 1.1程序功能说明 1.2程序设计的分析 2:系统的主要功能模块 2.1程序功能图示 3:程序的输入,输出和相应的算法 3.1程序的输入 3.2程序的输出 3.3程序的一些重要方法的实现算法和方法4:程序的测试 4.1程序测试的内容和结果 5:程序运行效果图 6:部分程序代码 6.1 蛇类代码 6.2 食物类代码 7:程序的注意事项 8:程序的不足之处

贪吃蛇游戏设计报告

贪吃蛇游戏设计 班级:13级7班 学号: 姓名: 一、实验目的 1.熟练掌握C6713 的中断结构和对中断的处理过程。 2.熟练掌握C6713 定时器的控制和使用方法。 3.熟练掌握键盘的使用原理及编程方法。 4.熟练掌握使用C6713DSP的扩展空间控制外围设备信息的方法;掌握蜂鸣器发声原理和音乐发生方法;掌握液晶显示器的显示控制原理及编程方法。 5.掌握C6713的系统自启动设计方法。 6.熟练掌握C语言开发DSP程序的流程及调试方法。 二、实验设备 计算机,ICETEK-C6713-EDU 实验箱,示波器。 三、实验内容(*号为选做内容) 1、在液晶屏上显示游戏背景、初始蛇身及运动、随机产生食物。 2、可以用键盘控制蛇身运动、暂停游戏。 3、游戏烧写到FLASH内,可以上电自启动运行。 四、设计原理 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个按键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体叉蛇头撞倒自

己身体游戏结束。 要想实现贪吃蛇功能,需要应用到键盘,按键中断,和液晶显示。想要正常使用按键,就要调用包含于有文件"ICETEK-C6713-A.h"中的init_emif();和InitCTR();程序用来初始化emif和ICETEK-CTR。 中断原理:dsp有三种类型的中断cpu的TMS320C6000:重置、可屏蔽的、不可屏敝的复位中断优先级最高,对应于复位信号。不可屏蔽中断优先级最高,对应于第二敝中断信号。最低优先级中断中断4?15对应INT4?INT15信号。重置,敝中断,一些INT4?INT15信号映射到C6000设备上的别针。一些INT4?INT15中断信号是内部使用的外设和一些可能不可用或在软件的控制下可以使用。 外中断区别于计时器等片内设备中断,它来源于DSP 片外,属于硬件中断。外中断信号通过DSP 器件封装上的专用管脚输入DSP,属于可屏蔽中断。TMS3206713DSP 有三个外中断:EXT_INT4~EXT_INT7,如果CPU 允许,这四个信号线上的低脉冲信号会中断CPU。 中断是为使CPU 具有对外界异步事件的处理能力而设置的。通常DSP 工作在包含多个外界异步事件环境中,当这些事件发生时,DSP 应及时执行这些事件所要求的任务。中断就是要求CPU 暂停当前的工作,转而去处理这些事件,处理完成后,再回到原来被中断的地方继续原来的工作。显然,服务一个中断包括保存当前处理现场,完成中断服务,恢复各寄存器和现场,然后返回继续执行被暂时中断的程序。请求CPU 中断的请求源称为中断源。这些中断源可以是片内的,如定时器等,也可以是片外的,如A/D 转换及其他片外装置。片外中断请求连接到芯片的中断管脚,并且在这些管脚处的电平上升沿产生。如果这个中断被使能,则CPU开始处理这个中断,将当前程序流程转向中断服务程序。当几个中断源同时向CPU 请求中断时,CPU 会根据中断源的优先级别,优先响应级别最高的中断请求。TMS320C6000 有11 个寄存器管理中断服务: *控制状态寄存器CSR 控制全局使能或禁止中断 *中断使能寄存器IER 使能或禁止中断处理 *中断标志寄存器IFR 指示有中断请求但未被响应的中断发生 *中断设置寄存器ISR 手动设置IFR 中的标志位 *中断清除寄存器ICR 手动清除IFR 中的标志位 *中断服务表指针ISTP 指向中断服务表的起始地址 *不可屏蔽中断返回指针NRP 包含从不可屏蔽中断返回的地址,该中断返回通过B NRP指令完成

相关主题