毕业设计(论文)-俄罗斯方块游戏的设计和实现.doc_第1页
毕业设计(论文)-俄罗斯方块游戏的设计和实现.doc_第2页
毕业设计(论文)-俄罗斯方块游戏的设计和实现.doc_第3页
毕业设计(论文)-俄罗斯方块游戏的设计和实现.doc_第4页
毕业设计(论文)-俄罗斯方块游戏的设计和实现.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐 城 师 范 学 院 毕业设计 俄罗斯方块游戏的设计和实现 学生姓名 学 院 信息工程学院 专 业 计算机科学与技术 班 级 12(1) 学 号 指导教师 2016 年 5 月 16 日 盐城师范学院毕业设计 俄罗斯方块游戏的设计和实现 摘摘 要要 俄罗斯方块是一款有益大脑开发,老少皆宜的游戏。传统的俄罗斯方块色彩单调, 功能单一,略显枯燥。而该俄罗斯方块是一款基于手机端开发的,可以根据玩家水平 选择游戏难度的游戏。它实现了四个方块随机组成 7 种形状的功能,这种方块组成功 能在弥补传统方块组成功能的缺陷的同时,还大大提高了游戏的趣味性,给玩家带来 了更好的游戏体验。 该游戏将编程技术与图形技术相结合,以 Eclipse 作为开发环境, Java 作为编程语 言,数据则保存在MYSQL 数据库中。 【关键词关键词】Java;MYSQL;图形技术;俄罗斯方块 全套设计加扣 3012250582 盐城师范学院毕业设计 Design and Implementation of Tetris Game Abstract Tetris game is suitable for all ages, which can develop the brain. The traditional Tetris game is a drab, single and a bit boring game. But this Tetris is based on a mobile terminal development, and players can choose the level of difficulty of the game to play it. It implements a function that uses four blocks to make up seven kinds of graphic shapes randomly, which not only makes up for the defect of traditional squares function, but also greatly increases the interesting of the game to bring players a better game experience. The game is the combination of programming and graphics, which uses Eclipse as a development environment. Java is used as a programming language and the Data is stored in the MYSQL database. Keywords Java; MYSQL; Graphic Technology; Tetris 目目 录录 盐城师范学院毕业设计 1 绪论.1 1.1 课题背景.1 1.2 课题意义.1 1.3 课题研究目的.1 2 开发环境介绍.1 2.1 硬件开发环境.1 2.2 技术介绍.2 2.2.1 Android .2 2.2.2 Eclipse.2 2.2.3 Java 语言.2 2.2.4 MYSQL 数据库.2 3 可行性分析.3 3.1 经济可行性.3 3.2 技术可行性.3 3.3 操作可行性.4 4 系统设计.4 4.1 功能模块设计.4 4.1.1 游戏功能分析.4 4.1.2 游戏功能模块图.4 4.1.3 UML 用例图.5 4.2 算法的描述和流程图.6 4.3 数据库的设计.7 5 设计实现.9 5.1 游戏设计.9 5.1.1 方块设计模块.9 5.1.2 方块旋转功能模块.10 5.1.3 游戏界面模块.11 5.2 模式选择.12 5.2.1 游戏开始功能模块.12 5.2.2 游戏设置功能模块.13 5.2.3 游戏积分统计模块.14 6 系统的调试与测试.15 6.1 系统的调试.15 6.2 系统的测试.15 6.2.1 测试的重要性及目的.15 6.2.2 测试的主要内容.16 7 结语.18 参考文献.19 盐城师范学院毕业设计 致 谢.20 盐城师范学院毕业设计 第 1 页 ,共 20 页 1 绪论 1.1 课题背景 俄罗斯方块游戏从产生到现在已经有25 年历史了。在这期间该游戏不断优化,推陈 出新,历经25 年仍旧没有被淘汰,可见其受欢迎的程度。俄罗斯方块最早是出现在 PC 端 的,我国的用户都是在红白机上接触并喜欢这款游戏。但随着时代的进步,技术的更新, 如今越来越多的人希望能在智能手机端上体验游戏趣味性,因此仅在 PC 端是很难满足玩 家的需求的。而传统手机端上的俄罗斯方块还有很多的不足,无法给玩家带来良好的游 戏体验,因此该游戏在手机游戏市场还一直处于萎靡状态。 1.2 课题意义 现如今的社会发展越来越快,人们的生活压力也与之俱增,面对这样的情况,人们 也越来越注重减压。而手机游戏是解决减压最简单,最低价的一种方式。玩家只需拥有 一部智能手机,无需联网也无需话费,便可以体验该游戏。玩家在游戏过程中,游戏的 难度会不断增加,这不但可以锻炼其思维的敏捷性,还可以锻炼脑力以及操作性。除此 之外,方块消行后,其积分会不断增加,游戏体验也会不断升级,玩家的成就感也会随 之不断的提高。 1.3 课题研究目的 该游戏的目的在于能给那些长期处于高压环境下的人们减压,使他们在身心得到放 松的同时还能够锻炼脑力,以确保其工作的效率性。另外本游戏的游戏理念简单易懂, 因此也适合小孩子在学习之余休闲放松。这一款游 戏在Android 手机上操作起来很便捷, 玩起来很畅快,目的是确保每一个玩家在任何情况下都能享受到该游戏的乐趣。 2 开发环境介绍 2.1 硬件开发环境 CPU:i5-3230M2.6HZ 内存:4GB 硬盘:500GB 分辨率:1366*780 盐城师范学院毕业设计 第 2 页 ,共 20 页 2.2 技术介绍 2.2.1 Android Android 是一个基于Linux 的免费和开源操作系统,主要在智能移动终端的使用,比 如平板电脑和智能手机,开发商Google 和开放手机联盟,有独家Android 软件开发工具包 1。 该游戏是基于手机端开发的,而Android 手机用户在手机总用户中占极大比例,因此 该游戏主要采用的是Android 操作系统。Android 平台开放性很高,其显著的开放性有利 于后期游戏二次开发,确保游戏被推广的同时也能日益走向成熟,从而吸引更多的玩家 和厂商。另外,Android 操作系统还有一个附属优势:其丰富的硬件,跟 IOS 系统的苹果 高端机相比更加低廉,玩家可以低价购买到心仪的 Android 机,换而言之,玩家在各种价 位的Android 机都能体验本游戏。 2.2.2 Eclipse Eclipse 是一个开发工具,这个工具对所有开发者开放源代码。它用于组件插件开发 环境2。它附带了一个标准的插件集,包括Java 开发工具。主要由Eclipse 项目中,Eclipse 工具项目和Eclipse 技术项目三个项目组成。 Eclipse 平台是一个IDE(集成开发环境),具 有开放性和可伸缩性。它提供了一个构造并运行集成软件开发工具的基础和基石 3。 2.2.3 Java 语言语言 Java 是于1995 年由Sun 公司推出的一种极富创造力的面向对象的程序设计语言。它 具有可移植性、多线程与动态等多种特点 4。这些特点相对于其他语言来讲就是它的优势。 而该游戏设计的当初就是看重Java 语言的这些优势,所以才采用了面向对象程序设计语言 Java 语言。此外,Java 语言还具有较高的安全性,这也直接方便了该游戏后续的测试环 节。 2.2.4 MYSQL 数据库数据库 MYSQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MYSQL AB 公 司。MYSQL 被广泛地应用在Internet 上的中小型网站中。由于其体积小、速度快、总体 拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而 选择了MYSQL 作为网站数据库 5。 该游戏根据实际需求选择MYSQL 数据库,因为手机游戏数据内容有限,不需要存储 过于强大的数据库, MYSQL 的操作简单,语法既有特色又实用,容易上手,所需的存储 容量相对其他数据库而言也较小。另外, MYSQL 作为一个大型数据库,在性能稳定的前 盐城师范学院毕业设计 第 3 页 ,共 20 页 提下,运行速度也是其他数据库的N 倍,手机游戏需要对用户有及时的反馈,所以反应 速 度在该游戏中显得尤为重要。 3 可行性分析 人类生活的节奏由于社会的飞速发展而变得越来越快,人类的需求也愈来愈多。现 如今的人们不仅追求物质上的满足,还注重追求精神上的满足。进而导致手机市场的发 展非常迅猛,使得手机操作系统也随之不断地换代更新。现如今主要是三种手机操作系 统领先着整个市场,它们分别是微软操作系统,苹果的 IOS 系统以及谷歌的安卓操作系统。 其中谷歌的安卓系统凭着它本身开发源代码的优势,在未来的市场中有着很大的发展前 景。那么好多人就设想是否能在手机上拥有一款由自己编写的俄罗斯方块游戏呢?答案是无 容置疑的,对于这个设想,谷歌的安卓系统就能够实现。而本文所要介绍的这款俄罗斯 方块游戏就是一个基于谷歌Android 手机平台的程序。 3.1 经济可行性 Android 手机系统是谷歌公司历经多年、耗费巨资所开发的方便快捷的手机系统,在 Android 平台,开发人员能以低成本进行手机游戏开发。再加上该游戏体积小,硬件条件 要求低,因此安卓低价机可以轻松负担其运行,开发费用几乎为零。除了后期推广该游 戏,其他基本不需要太多的费用。因此在经济成本这一块无太多顾虑 。 3.2 技术可行性 该游戏开发运用的是安卓框架,因为在该框架中开发人员可以利用内部编译软件安 装安卓开发插件,此外开发人员还可以使用 Android 模拟器或者使用Android 终端对游戏 进行测试,使得模拟器和真正的Android 手机在运行游戏上没有太大区别 6。安卓系统从产 生到现在已经有十多年了,安卓游戏开发技术也日益成熟,开发人员的编程水平也足以 开发本游戏。因此在技术方面同样具有很高的可行性。 3.3 操作可行性 该游戏的操作只需要在具有安卓系统的手机端上便可以进行,因为上文已经介绍本 游戏的开发环境就是基于安卓的开发环境。再加上如今社会的高速发展,电子市场与手 机市场的高歌猛进,安卓系统的更新迭代,使得该游戏的操作性变得更加的简单,同时 也使得玩家可以更流畅,更便捷的体验俄罗斯方块游戏的乐趣。 盐城师范学院毕业设计 第 4 页 ,共 20 页 综合经济可行性,技术可行性以及操作可行性这三个方面可得出本游戏具有很高的可 行性。 4 系统设计 4.1 功能模块设计 4.1.1 游戏功能分析游戏功能分析 对于俄罗斯方块游戏的功能描述如下。 (1)当点击游戏APP 图标后,进入游戏登录欢迎界面。 (2)进入游戏界面后显示的是功能选择模块:分别有游戏开始模块、游戏设置模块 和积分统计模块。 (3)游戏开启模块下有以下两个小功能,分别是:游戏重新开始与继续游戏;游戏 设置模式又有三个小功能,分别是:游戏背景音乐的切换功能、游戏难度模式的选择功 能和游戏的帮助说明;积分统计模块主要是一个功能,即有一个积分排行榜。 (4)游戏背景音乐的切换功能不仅可以切换当前播放的音乐还可以更改当前游戏的 音效,给玩家在听觉上制造冲击。 (5)游戏的难度选择模式是根据每个玩家的竞技水平不同来设置的,对于刚接触本 款游戏的玩家可以选择简单模式来练手;而对于那些早些时候就是俄罗斯方块的痴迷玩 家来说,困难模式是他们的最佳选择。在困难模式中方块的下落速度是很快,这就要求 玩家在很短的时间的将下落的方块放置在最合适的位置。 4.1.2 游戏功能模块图游戏功能模块图 根据对系统的功能进行分析总结,本俄罗斯方块游戏系统的具体功能模块包括下面 的几个主要的功能模块。 该系统的功能模块图如下图4-1 所示。 盐城师范学院毕业设计 第 5 页 ,共 20 页 图 4-1 系统功能模块图 4.1.3 UML 用例图用例图 该游戏系统可以实现的功能包括:游戏难度模式的选择、游戏背景音乐的切换、游 戏成绩的查询及其排名。 游戏玩家用例图如图4-2 所示。 图 4-2 游戏玩家用例图 4.2 算法的描述和流程图 盐城师范学院毕业设计 第 6 页 ,共 20 页 该游戏的核心算法是方块变换,玩家在点击游戏开始后可以在当前下坠方块到达底部 之前对该方块进行旋转操作。方块到达底部后,玩家无法进行旋转操作,方块到达底部时, 有以下几个步骤: (1)若该方块到达底部后,若有一行满十个方块单位,则对该行进行自销处理。 (2)确认方块到达底部后,游戏自动生成下一个方块,该方块的形状随机生成。 (3)方块即将到达底部时,屏幕右上方会提醒下一个方块的形状 (4)新的方块下降的过程中,又会随机生成下一个方块,并在屏幕右侧提醒下一个 方块生成的形态。 该游戏的设计流程图:如下图4-3 所示。 1.消行操作 2.生成下一个方块 3.将新生的方块代替旧的“下一个方块” 4.将旧的“下一个方块”用作当前方块 5.消行操作 6.结束处理 7.下降一个单位 到达底部 是 否 否 是 到达底部 至底结束 开始 结束 盐城师范学院毕业设计 第 7 页 ,共 20 页 图 4-3 设计流程图 4.3 数据库的设计 该游戏根据实际需求选择MYSQL 数据库,因为手机游戏数据内容有限,不需要存储 过于强大的数据库, MYSQL 的操作简单,语法既有特色又实用,容易上手,所需的存储 容量相对其他数据库而言也较小。另外, MYSQL 作为一个大型数据库,在性能稳定的前 提下,运行速度也是其他数据库的N 倍,因为手机游戏需要对用户有及时的反馈,所以 反应速度在该游戏中显得尤为重要。 该游戏实现了成绩查询与排行榜的功能,并运用了 MYSQL 数据库保存了玩家的游戏 积分与排名。如表4-1 所示。 表 4-1 游戏信息表 该数据库的表用 E-R 图来表示如图 4-4 所示。 No字段名称字段含义类型位数备注 1Id主键bigint20NOT NULL 2Username用户名varchar100NOT NULL 3Password密码varchar200NOT NULL 4Name用户真实姓名varchar50NOT NULL 5Score分数int10NOT NULL 6Data日期varchar100NOT NULL 7Sound effect音效varchar100NOT NULL 8Back Music背景音乐varchar100NOT NULL 盐城师范学院毕业设计 第 8 页 ,共 20 页 图 4-4 E-R 图 其关键代码如下。 public void onCreate(SQLiteDatabase db) String sql = CREATE TABLE + TABLENAME + (+ name VARCHAR(50) NOT NULL,+ score INT NOT NULL,+ data VARCHAR(50) NOT NULL,+ Registration_time VARCHAR(50) NOT NULL+); db.execSQL(sql); 5 设计实现 5.1 游戏设计 5.1.1 方块设计模块方块设计模块 该游戏主要是由7 种方块组成,通过方块的旋转与组合使得方块在下落到底部后可以 消行得分。7 种方块的形状如图5-1 所示。 盐城师范学院毕业设计 第 9 页 ,共 20 页 图 5-1 方块图 其关键代码如下。 class T extends Tetromino public T() /T 型的四格方块在游戏中初始的位置和颜色 cells0 = new Cell(0,4,T_COLOR); cells1 = new Cell(0,3,T_COLOR); cells2 = new Cell(0,5,T_COLOR); cells3 = new Cell(1,4,T_COLOR); class L extends Tetromino public L() /L 型的四格方块在游戏中初始的位置和颜色 cells0 = new Cell(0,4,L_COLOR); cells1 = new Cell(0,3,L_COLOR); cells2 = new Cell(0,5,L_COLOR); cells3 = new Cell(1,3,L_COLOR); 5.1.2 方块旋转功能模块方块旋转功能模块 该游戏中方块的旋转方式也是各有差异的。比如直线形的方块只有两种旋转方式: 横向的与竖向的;田字形的就一种旋转方式;凸字形、正反 Z 字形与正反7 字形的旋转方 式都是分别有上、下、左、右四种旋转方式的。 这几种方块的旋转方式如图5-2 所示。 盐城师范学院毕业设计 第 10 页 ,共 20 页 图 5-2 方块旋转图 其关键代码如下: /J 型四格方块的旋转状态 states = new Offset new Offset(0,0,-1,0,1,0,1,-1), new Offset(0,0,0,1,0,-1,-1,-1), new Offset(0,0,1,0,-1,0,-1,1), new Offset(0,0,0,-1,0,1,1,1) /L 型四格方块的旋转状态 states = new Offset new Offset(0,0,-1,0,1,0,-1,-1), new Offset(0,0,0,1,0,-1,-1,1), new Offset(0,0,1,0,-1,0,1,1), new Offset(0,0,0,-1,0,1,1,-1) /消行代码 public void clearLine( int row) for(int j = row ; j0 ; j-) for(int col = 0 ; col 10 ; col+) if(wallj-1col = null ) /判断游戏板上每个方格是否为空 walljcol = null; else if(wallj-1col != null) 盐城师范学院毕业设计 第 11 页 ,共 20 页 walljcol = new Cell(j, col, wallj-1col.getColor(); /如果不 为空则将上一行的方格属性复制到下一行 for(int col= 0 ; col 100) level = GAME_LEVEL1; speed = 20 ; else if(score = 70) level = GAME_LEVEL2; speed = 350; else if(score = 90) level = GAME_LEVEL3; speed = 300; else if(score = 400) level = GAME_LEVEL4; speed = 250; 5.2.3 游戏积分统计模块游戏积分统计模块 积分统计模块:点击游戏的积分统计模块即会显示一个排行榜。游戏积分统计模块 如图5-7 所示。 图 5-7 游戏积分统计模块界面 盐城师范学院毕业设计 第 15 页 ,共 20 页 6 系统的调试与测试 6.1 系统的调试 对于经常编写程序的人来说,他们心里都很明白在程序的设计与编写过程中出现各 种奇葩的错误是很正常的。其中对于语法错误,程序在运行过程中会自动显示出来,并 提示立即纠正,所以语法错误相对而言是比较容易发现并纠正的。但有些事情往往并不 总是如你所愿的,比如由于非法操作或者思维逻辑的错误而导致的程序出错就很难被发 现。因为这种错误隐蔽性强,不会每次都出现,所以对这一类动态发生的错误的排查是 耗时费力的。这就需要我们在设计与编写程序的过程中不断地对系统进行调试。 6.2 系统的测试 6.2.1 测试的重要性及目的测试的重要性及目的 (1)重要性 软件测试在软件开发过程中地位极其重要,一个项目或者程序如果不能尽早发现错 误并及时修改,极大可能会导致最后产品成型时出现巨大漏洞。 (2)目的 很多人误以为软件测试的目的就是找Bug。但我认为,软件测试的目的是验证需求, 使产品更趋近于完美,而Bug 只是这个测试过程中的产品而非目标。 6.2.2 测试的主要内容测试的主要内容 (1)玩家界面如表6-1 所示。 表 6-1 玩家界面测试 界面测试测试要求测试结果 主界面要求美观具有欣赏性符合 选择模式图 用户可以根据自己的需求选择难易 程度 符合 游戏界面游戏感要强且具有 3D 感符合 (2)按键测试如表 6-2 所示。 表 6-2 按键测试 盐城师范学院毕业设计 第 16 页 ,共 20 页 测试键测试功能测试结果 开始键游戏开启符合 暂停键(字母 p)游戏暂停符合 退出键退出游戏符合 方向键 小键盘的“上、下、左、 右键 方块正常移动且不出框架界面符合 难度级别键可以根据设置的难度级别选择难度符合 变换键(空格键)可在方块下落过程中按键变形符合 音乐切换键可以切换背景音乐符合 查看成绩键可以查询玩家的成绩与名次符合 (3)其他测试表如表 6-3 所示。 表 6-3 其他测试 测试内容要 求测试结果 积分可靠性积分成绩与排名没有错误满足 程序稳定性程序异常或崩溃概率低于 5%满足 用户交互性安装简单,操作便捷满足 以上测试的内容基本符合该游戏所需测试的内容,同时也基本满足软件开发的要求, 因此该游戏的测试宣告结束。 盐城师范学院毕业设计 第 17 页 ,共 20 页 7 结语 手机游戏已经成为了人们日常娱乐的重要部分,各种各样的游戏层出不穷,手机游 戏之间的竞争也越来越激烈,因此只有具备丰富并且强大功能的游戏才能满足现如今玩 家的需求。该游戏以长达一个月的用户调查为前提,对用户需求进行了详细的分析,对 市场上功能各异的俄罗斯方块游戏进行了解渗透,总结出该游戏应具备的功能模块。在 编写论文过程中,我不断的查找资料。其中界面的设计、数据库的设计、代码的编写以 及最后的程序调试,我都付出了不少努力和时间,所以我能够深切的感受到完成一个毕 业设计是多么的不容易。 由于大学期间我主要学习的是汇编方面的课程,所以在图形技术上有很多不足的地 方,望老师谅解。 以下是我认为自身设计的不足: (1)方块的美感个人觉得还稍有欠缺; (2)不能联网,只能够单机,缺乏在线PK 功能; (3)游戏的流畅度方面做的还需要完善。 盐城师范学院毕业设计 第 18 页 ,共 20 页 参考文献参考文献 1 李国良.基于 Android 平台的物联网物流信息系统的设计与实现M.北京:机械工业 出版社,2011:42. 2 张丹蕊.基于 Android 的智能医疗管理软件设计及客户端的实现D.吉林大学硕士学 位论文,2012. 3 Jim DAnjou,Scott Fairbrother,Dan Kehn,John Kellerman,Pat McCarthy.The Java Developers Guide to Eclipse, 2nd Editio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论