ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:274.52KB ,
资源ID:64895      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-64895.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Java的俄罗斯方块的设计和实现-毕业论文.docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于Java的俄罗斯方块的设计和实现-毕业论文.docx

1、河北农业大学本科毕业论文题目:基于 Java 的俄罗斯方块的设计与实现摘要俄罗斯方块作为一款风靡全球的多样化终端游戏,经久不衰。俄罗斯方块简单的基本游戏规则是旋转、移动,游戏自动随机输出 7 种形状的方块,经旋转后可形成 28 种形状,方块堆叠在一起,排列成完整的一行或多行消除得分,积分达到一定程度会自动提升级别。该游戏上手简单、老少皆宜、家喻户晓。本论文在详尽分析传统俄罗斯实现的基本原理、基本规则基础上,更深一步地研究俄罗斯方块的创新模式,在经典模式基础上开发出等级可变的模式,本文对以上功能给出了实现流程、详尽描述、和部分源代码。程序是在 Microsoft Windows 7 系统下,以

2、Java为开发语言,在 MyEclipse 开发平台上进行游戏的设计与实现。关键词:游戏;软件工程;MyEclipseAbstractTetris is a popular global diversification terminal game, enduring. The basic rules of the game Tetris simple is rotating, moving, the game automatically random output 7 shape box, the rotation can be formed after the 28 square shape

3、, stacked together, arranged to complete one or more rows to eliminate the score, the integral to a certain extent will automatically upgrade the level of. The game started simple, suitable for all ages, make known to every family.In this paper a detailed analysis of the basic rules of traditional R

4、ussian basic principle, on the basis of the realization of innovation mode, further study of Tetris, developed a class variable model in the classical model, the above function gives the implementation process, detailed description, and part of the source code.This design is in the Microsoft Windows

5、 7 system, taking Java as the development language, for game design and Implementation on MyEclipse platform.Keywords: Game; software engineering; MyEclipse目录1 绪论11.1 俄罗斯方块游戏的背景11.2 俄罗斯方块游戏的规则11.3 研究俄罗斯方块游戏的意义11.4 论文组织22 相关技术分析32.1 JAVA 语言概述32.2 Eclipse 简介43 需求分析63.1 系统需求63.2 接口控制64 系统设计74.1 软件运行和开发

6、工具74.2 系统功能设计74.2.1 手工处理业务的基本流程74.2.2 基本流程的功能模块95 系统实现115.1 游戏主界面显示模块115.2 画布、方块显示模块125.2.1 背景画布模块设计125.2.2 预览方块模块设计145.2.3 方块移动、旋转设计165.3 控制面板模块205.3.1 菜单栏模块设计205.3.2 控制面板按钮设计226 总结23参考文献24致谢251 绪论1.1 俄罗斯方块游戏的背景俄罗斯方块是俄罗斯人阿列克谢帕基特诺夫(Alexey Pazhitnov)发明。1985 年 6 月工作于莫斯科科学计算机中心的阿列克谢帕基特诺夫在玩过一个拼图游戏之后受到启

7、发,从而制作了一个以 Electronica 60(一种计算机)为平台的俄罗斯方块的游戏。后来经瓦丁格拉西莫夫(Vadim Gerasimov)移植到 PC 上,并且在莫斯科的电脑界传播。人们一开始并没预料到它将会有如此广泛的吸引力。实际上,在游戏发明后的数年间,俄罗斯方块成了无数场专利官司和法律纠纷的目标,而许多公司也不遗余力地上阵厮杀,想要将游戏的创意据为己有。一个最初的版本是 Spectrum Holobyte 为 IBM 兼容机开发的游戏。 1988 年,俄罗斯方块在街机上也变得非常流行,这归功于 Atari,因为他们发布了一个能让两名玩家同时游戏的版本。俄罗斯方块经常被称为拼图游戏。

8、玩家需要找出如何能把各块积木最好的拼在一起的方法。俄罗斯方块相当于直角的智力拼图游戏,或者其它一种“在这有限空间内组织几何体”的拼图。俄罗斯方块为了创造真正引人入胜的游戏,它巧妙的平衡了拼图游戏与动作游戏的机制。因而每个人玩这个游戏都会有一次不同的体验。俄罗斯方块所用到的一种动作游戏机制是越来越逼近的威胁感,留给玩家的时间总是非常有限。俄罗斯方块中积木是从上面落下来。如果玩家不在积木落到屏幕底下或翻转它,不能给它找一个最有利的位置,这块积木就可能会堵住某处,而它下面的几行也就没有办法拼接完整,玩家也就离游戏结束又靠近了一行或几行。在游戏进程中,积木落下来的速度越来越快,这样对玩家的挑战也就越来

9、越大,游戏的难度也逐步增加。2014 年 2 月 22 日,英国心理学家发现,减肥者通过玩俄罗斯方块,可以降低对富含脂肪的食物和零食的心理需求;尝试戒烟者的烟瘾也能得到遏制1。1.2 俄罗斯方块游戏的规则由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束2。1.3 研究俄罗斯方块游戏的意义在成为一个真正的游戏开发者的路上,俄罗斯方块是一个完美开始。并且,不需要艺术家般的才能就能做

10、出非常好看的俄罗斯方块游戏。任何一个能画出方块的人每个作图形程序的人都会的就能做出商业品质的俄罗斯方块游戏。以俄罗斯方块开始还有另外一个好处,不仅能做出一个完整的既好玩又容易上瘾游 戏,而且它看上来和那些商业版本没什么区别。方块就是方块,不管是谁画出它们的,而且 tetraminos(俄罗斯方块中使用的形状)也不过是一些方块的组合。1俄罗斯方块拥有所有游戏共通的独立成份。它有一个游戏循环(这个过程被反复执行直到游戏退出)。这个游戏循环读取玩家的输入,处理这个输入,然后更新游戏的元素(下落的 tetraminos),并且检查是输还是赢3。以后要做的所有的简单的游戏都要用到这些东西,所以学习这个过

11、程并且实现它是非常重要的。当第一次完成它之后,以后再做游戏时就能看出那个游戏有多难以及要花多长时间。如果没有完整的完成过这些,哪怕一次,就永远不能完整地正确领会其中的每个元素。当做大的项目时,就更不能确定其复杂性及所要的时间。如果甚至不能正确地领会这整个过程(因为你没能完成它),可能是没能建立一个合适的时间表或估计合适的时间,更有可能的是不够努力。还有,玩俄罗斯方块可以练习人的反映能力,开始时快速的下降会让人手无足措,但适应了之后就会发现自己的反应力变的很快了。其次长时间的手指活动可以让人血液流通加快有利健康。还有俄罗斯方块高手都知道要想赢,就要有远大的布局,决不能只局限于一点一点的减,这在无

12、形中就提高了人的智慧。1.4 论文组织论文全文共分为六章:第一章绪论:主要介绍了游戏的背景、规则及研究此游戏的意义。第二章相关技术分析:介绍了 Java 语言和开发环境 Eclipse 的相关知识。第三章需求分析:主要介绍了系统设计思想、功能和性能需求。第四章系统设计:主要介绍了系统的功能设计。第五章系统实现:介绍了系统的所有模块和它的功能。第六章总结:回顾开发此游戏的艰辛过程与人生感悟。22 相关技术分析JAVA 语言概述2.1Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言4,是由 Sun Microsystems公司于 1995 年 5 月推出的 Java 程序设计语言和

13、Java 平台(即 JavaEE, JavaME, JavaSE)的总称。Java 自面世后就非常流行,发展迅速,对 C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。Java 语言是易学的。Java 语言的语法与 C 语言和 C+语言很接近,使得大多数程序员很容易学习和使用 Java。另一方面,Java 丢弃了 C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、

14、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java 语言是强制面向对象的。Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C+语言只对虚函数使用动态绑定。总之,Java 语言是一个纯的面向对象程序设计语言。Java 语言是分布式的。Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它

15、提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。Java 语言是健壮的。Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。Java 语言是安全的。Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了 Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 Cla

16、ssLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让 Java 应用设置安全哨兵。Java 语言是体系结构中立的。Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。Java 语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实

17、现的,Java 的运行环境是用 ANSI C 实现的。Java 语言是解释型的。如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。3Java 是性能略高的。与那些解释型的高级脚本语言相比,Java 的性能还是较优的。Java 语言是原生支持多线程的。在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnabl

18、e)的构造子将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。Java 语言是动态的。Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这

19、也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java 语言的优良特性使得 Java 应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用5。Java 对对象技术的全面支持和 Java 平台内嵌的 API 能缩短应用系统的开发时间并降低成本。Java 的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是 Java 企业应用编程接口(JavaEnterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库6-7 。Eclipse 简介2.2Eclipse 是著名的跨平台的

20、自由集成开发环境(IDE)8。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一代 IDE开发环境,2001 年 11 月贡献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金会(Eclipse Foundation)管理

21、。 2003 年,Eclipse 3.0 选择 OSGi 服务平台规范为运行时架构。 2007 年 6 月,稳定版 3.3 发布。2008 年 6 月发布代号为 Ganymede 的 3.4 版9。 Eclipse 的基础是富客户机平台(Rich Client Platform, 即 RCP)。RCP 包括下列组件:(1)核心平台(启动 Eclipse,运行插件) (2)OSGi(标准集束框架) (3)SWT(可移植构件工具包) (4)JFace(文件缓冲,文本处理,文本编辑器)(5)Eclipse 工作台(即 Workbench ,包含视图(views)、编辑器(editors)、视角(pe

22、rspectives)、和向导(wizards)Eclipse 采用的技术是 IBM 公司开发的(SWT),这是一种基于 Java 的窗口组件,类似 Java 本身提供的 AWT 和 Swing 窗口组件;不过 IBM 声称 SWT 比其他 Java 窗口组件更有效率。Eclipse 的用户界面还使用了 GUI 中间层 JFace,从而简化了基于 SWT 的应用程序的构建。4Eclipse 的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse 使用插件来提供所有的附加功能,例如支持 Java 以外的其他语言。 已有的分离的插件已经能够支持 C/C+(CDT)、Perl、Ruby,P

23、ython、telnet 和数据库开发。插件架构能够支持将任意的扩展加入到 现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。Eclipse 的设计思想是:一切皆插件。Eclipse 核心很小,其它所有功能都以插件的形式附加于 Eclipse 核心之上。Eclipse 基本内核包括:图形 API (SWT/Jface), Java 开发环境插件(JDT ),插件开发环境(PDE)等。Eclipse 由各种不同的计划组成。以下列出了部分计划。(1) Eclipse 计划:本身包括 Eclipse 平台,Eclipse 富客户端平台(RCP)和 Java开发工具(JDT)。(2) Ecli

24、pse 测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。(3) Eclipse Web 工具平台计划(WTP):用 Java 企业版 Web 应用程序开发工具来扩展 Eclipse 平台。它由以下部分组成:HTML、JavaScript、CSS、JSP、SQL、XML、DTD、 XSD 和 WSDL 的 源代码编辑器;XSD 和 WSDL 的图形界面编辑器;Java 企业版的“项目性质”(project nature)、建构器(builder)和模型(model),与一个 Java 企业版的导航(navigator);一个 We

25、b 服务(Web service)向导和浏览器,还有一个 WS-I 测试工具;最后是数据库访问查询的工具与模型。(4) Eclipse 商业智能和报表工具计划(BIRT):提供 Web 应用程序(特别是基于Java 企业版的)的报表开发工具。(5) Eclipse 可视化界面编辑器计划(VEP):一个 Eclipse 下创建图形用户界面代码生成器的框架。(6) Eclipse 建模框架(EMF):依据使用 XMI 描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。(7) 图形化编辑器框架(GEF):能让开发者采用一个现成的应用程序模型来轻松地创建富图形化编辑器。(8) UML2:E

26、clipse 平台下的一个 UML 2.0 元模型的实现,用以支持建模工具的开发。(9) AspectJ:一种针对 Java 的面向侧面语言扩展。(10) Eclipse 通讯框架(ECF):专注于在 Eclipse 平台上创建通讯应用程序的工作。(11) Eclipse 数据工具平台计划(DTP)(12) Eclipse 设备驱动软件开发计划(DSDP)(13) C/C+开发工具计划(CDT):努力为 Eclipse 平台提供一个全功能 C 和 C+的集成开发环境(IDE),它使用 GCC 作为编译器。(14) Eclipse 平台 COBOL 集成开发环境子计划(COBOL):将构建一个E

27、clipse 平台上的全功能 COBOL 集成开发环境。(15) 并行工具平台(PTP):将开发一个对并行计算机架构下的一组工具进行集成的平行工具平台,而且这个平台是可移植的,可伸缩的并基于标准的。(16) 嵌入式富客户端平台(eRCP):计划将 Eclipse 富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上。53 需求分析对系统的需求分析就是用户和开发人员在“系统必须做什么”这个问题上实现相互理解,达到共识,从而形成双方认可的软件产品的需求规格。这样有利于提高软件开发过程中的能见度,便于

28、对软件开发过程的控制与管理,便于采用工程化的模式开发软件,从而达到提高软件的质量,为开发人员、维护人员、管理人员之间的交流、协作提供便捷。作为工作成果的原始依据,系统的需求分析可以向潜在用户传递软件功能、性能的需求,使其能够判断该软件是否符合自己的需求。3.1 系统需求系统随机产生 7 中不同形状的方块,旋转后有 28 种状态。方块自由下落,玩家通过键盘控制方块的移动和旋转,把方块摆放在适当的位置。如果方块落下时,有被方块填满的整行,则该行可消去。每消去一行,玩家得分增加 10 分,每满 50 分,玩家等级增加一级。若由存在空格的方块填满整个窗口,则游戏宣告失败。游戏功能需求如下:游戏界面需求

29、:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的默认背景色是灰色,主界面方块默认用浅绿色,预显方块颜色默认为红色。背景色、前景色对比鲜明,以达到让玩家眼前一亮的感觉,并能在游戏达到高等级状态,方块下落速度渐高的情况下使玩家能够清楚的分辨出下落方块的形状,增加游戏的刺激性。游戏形状需求:用数组作为存储方块 28 种状态的数据结构,即长条形、Z 字形、反 Z形、田字形、7 字形、反 7 形、T 字型一共 7 种形状的向 4 个方向的旋转变形,各个方块要能实现它的任意变形,可设为顺时针变形或逆时针变形,一般为逆时针变形。方块的可否翻转需要加以判断,以防止其翻转越界。键盘处理事件需求:

30、方块下落时,可通过键盘方向键(上键、下键、左键、右键)向上(旋转变形)、向下(加速下落)、向左移动、向右移动。鼠标处理事件需求:通过点击菜单栏中相应的菜单项或控制面板内的按钮,可以实现游戏的开始、结束、暂停、继续、提高等级、降低等级,预显方块形状的显示,分数、等级的显示,以及游戏帮助等功能。显示需求:当方块填满一行时可以消行,剩余未填满的行逐次向下移动并统计分数。当达到一定分数的时候,会增加相应的等级。当方块充满主界面的每一行,方块不能再下落时,提示“亲!你输了!”的字样。非功能性需求:本系统非功能性需求包括游戏主界面窗口尺寸可调整性需求、游戏运行时主界面弹出位置居中需求等。3.2 接口控制本

31、游戏通过键盘和鼠标进行操作,在 Windows 的操作系统下,利用键盘的按键对方块进行移动、变形,要使用到键盘的接口事件。游戏使用鼠标对游戏进行全程控制,如游戏的开始、暂停、继续、查看游戏帮助、更改游戏等级等,通过对鼠标单击、按键添加监听事件,编辑相应代码来实现相应功能。64 系统设计4.1 软件运行和开发工具操作系统:Microsoft Windows 7内存:2G 硬盘:500GCPU:Intel(R) Core(TM) i3-2310M交互工具:键盘、鼠标显示器:VGA 显示器 JDK 版本:jdk1.7.0_25Eclipse 版本:MyEclipse 4.3.0 SDK-3.4.1-win644.2 系统功能设计4.2.1 手工处理业务的基本流程本游戏的设计以娱乐为初衷,以益智为目的,在综合研究以往俄罗斯方块经典游戏功能的基础上推陈出新,加之新的功能,赋以新的生机和活力。图 4-1 为游戏基本流程图具体阐述游戏的基本流程。运行说明:1运行程序,点击右侧控制面板内的“开始”或“控制”菜单内的“开始”按钮开始游戏。2使用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2