欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载
     

    基于Java GUI的俄罗斯方块游戏论文.docx

    • 资源ID:3920455       资源大小:2.32MB        全文页数:64页
    • 资源格式: DOCX        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Java GUI的俄罗斯方块游戏论文.docx

    太原理工大学毕业设计(论文)用纸基于Java GUI的俄罗斯方块游戏的设计与实现摘 要俄罗斯方块作为一款风靡全球的多样化终端游戏,经久不衰。俄罗斯方块简单的基本游戏规则是旋转、移动,游戏自动随机输出7种形状的方块,经旋转后可形成21种形状,方块堆叠在一起,排列成完整的一行或多行消除得分,积分达到一定程度会自动提升级别。对于一般用户来说,它的规则简单,容易上手,但游戏过程却变化无穷。本游戏与通常俄罗斯方块游戏的不同之处在于:在消行升级时,堆积方块的颜色会发生变化,背景也会变化,以此来提示用户。另外,本游戏还增加了控制键自定义功能,本地排行榜和数据库排行榜的功能,游戏结束时,用户可通过对话框输入自己的姓名并存储到本地排行榜和数据库排行榜中,如果积分进入前5名,即可在排行榜上看到自己的游戏记录。此设计是在 Microsoft Windows 系统下,以 Java 为开发语言,采用基于java的GUI(图形用户界面) 组件创建,在 My Eclipse 开发平台上进行游戏的设计与实现,强调人机环境三者作为一个系统进行总体设计。 使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。关键词:俄罗斯方块;图形用户界面;Java Design and Implementation of Java GUI-based Tetris GameAbstractTetris as a popular global diversification end game, enduring. Tetris is a simple basic rules of the game rotate, move, the game automatically random output block 7 kinds of shapes, after rotating 21 kinds of shapes can be formed, stacked blocks, arranged in a complete elimination of one or more lines to score points reach a certain degree will automatically upgrade level. For the average user, its rules are simple, easy to use, but the game has endless variations. The difference between this game and Tetris game usually is: When eliminating the upgrade, color box stacked vary, background will also change, in order to prompt the user. In addition, the game also adds a custom function control keys, the local charts, and database functions charts at the end of the game, the user can enter his name on the dialog box and stored in a local database leaderboards and rankings, if the integral the top 5, you can see their game records on the charts.This design is in the Microsoft Windows 7 system, for the development of the Java language, using the create java-based GUI (Graphical User Interface) components, design and implementation of the game will be on My Eclipse development platform, emphasis on human - machine - environment of the three As a system, the overall design. Make the operation more humane, reducing the cognitive load of users, making it more appropriate for the operating needs of the user.Keywords:Tetris; graphical user interface; Java III目 录1 绪言11.1 选题背景及意义11.2 选题目的21.3 毕设中用到的技术、工具等介绍21.3.1 Java21.3.2 Java GUI编程31.3.3 数据库51.3.4 Java线程机制61.3.5 开发工具61.4 本文主要工作71.5 本章小结72 需求分析82.1 可行性分析82.1.1 技术可行性82.1.2 经济可行性102.1.3 操作可行性102.1.4 法律可行性112.1.5 可行性分析结论112.2 游戏功能分析112.2.1 项目目标112.2.2 系统概述112.2.3 系统运行环境122.2.4 系统功能需求122.2.5 接口控制132.3 本章小结143 概要设计153.1 概要设计概述153.2 概要设计思想153.3 系统的类结构173.4 游戏的状态图173.5 游戏的配置图183.6 基本流程的功能模块193.7 数据库设计203.7.1 本游戏采用的数据库203.7.2 本游戏涉及的数据表203.8 游戏的总体流程图213.9 本章小结224 详细设计与实现234.1 游戏主界面设计与实现234.2 俄罗斯方格类的设计与实现284.3 游戏块的设计与实现284.4 游戏控制的设计与实现294.5 俄罗斯方块游戏的设计与实现314.5.1 游戏界面的设计方法314.5.2 游戏控制面板的设计334.5.3 游戏画布类的设计与实现344.5.4 游戏主类的设计与实现354.6 本章小结355 系统测试365.1 测试目的365.2 测试说明365.3 测试内容375.4 本章小结40总 结41参考文献43致 谢45附录:英文文献及翻译461 绪言游戏软件是一种与文化背景密切联系的产品,伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。因此发展我国自主的益智休闲的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。1.1 选题背景及意义俄罗斯方块作为经典的益智休闲游戏之一,受到50多个国家和地区的玩家喜爱,有超过50种语言的版本,运行在几十种游戏平台上,从掌机、街机、个人电脑,到手机和PDA。本游戏根据软件工程有关的规范,以合理的开发原则,设计出简洁美观的俄罗斯方块游戏,给人们的生活带来唯美的艺术享受和健康愉快的补充。俄罗斯方块的影响己毋庸置疑,当今世界的电脑、手机到处都有俄罗斯方块的踪迹,同时它更是每个游戏平台的必备游戏,相关的复制品不胜枚举。这个最早由莫斯科的数学家亚力克西·帕杰诺夫所设计的作品,被公认为有史以来最畅销的经典游戏,至今魅力不减当年。亚力克西· 帕杰诺夫曾在俄罗斯科学研究院电脑中心工作,当时他在Eletronica 60 的旧型俄罗斯主机上进行开发工作,这种机器不支持图形界面,和PC也不兼容。他尝试将一种传统的拼图游戏Pentomino改写成电脑游戏。Pentomino一共有十二种形状,各以七个方块组合而成。帕杰诺夫试着写了一个程序,旋转并移动这十二种不同形状的方块,让它们拼成一大块。后来几经修改,发展成我们现在所熟悉的经典模式。俄罗斯方块曾经引起的轰动和制造的经济价值可以说是游戏史上无可比拟的。它看似简单但却变化无穷,令人爱不释手。俄罗斯方块游戏是随计算机的发展而发展,并不断推陈出各种新演变出的类似游戏,深受广大玩家喜爱。游戏模式有的简单、有的复杂,但其根本原理是都是对随机出现的方块进行组合,来训练玩家的反应能力、逻辑思维能力。游戏软件,大多数人都视其为神妙莫测,高不可及的东西。一般来说,游戏软件也确实具有很高的技术难度,随着开发工具和软件开发方法学的不断发展,自己动手开发游戏也并非难事。俄罗斯方块游戏可以上说是一种古老而又有趣的游戏。游戏软件不计其数,网上也有很多关于游戏实现的复杂算法和设计, 其难度让一般初学者望而却步。本文利用数组作为方块的数据结构,用颜色变化作为方块下落和移动的标识,提出一种用Java语言实现游戏的简易方法,在经典模式的基础上实现等级可变,颜色可变等功能, 初学者可仿此开发类似游戏,并了解游戏软件的设计与开发过程。俄罗斯方块游戏以其益智、简单又不乏挑战、创意独特的游戏模式,吸引了众多游戏爱好者,而且老少皆宜。当今社会里,人们的工作压力随着生活节奏的快速提高而逐渐繁重,随之减少的是可以自由支配的休息时间,人们迫切地需要一种既简单又节省时间的快速休闲方式。无可争议, 它是永恒的娱乐经典,且它的代码简单,界面简沽,从最初发行刑的单个游戏机到现在便捷的安装到电脑、手机、MP4 、电子词典、商务通、IPAD、ITOUCH 等便携设备,俄罗斯方块风靡世界, 经久不衰。本次课题研究可以说是对游戏开发的一次尝试,无论从技术还是社会意义上看都是很有价值的。1.2 选题目的改善现存俄罗斯方块游戏的单一模式,开发出一个可操作性、美观性、及时性的俄罗斯方块游戏。游戏中提供了漂亮美观的界面和方便的自定义控制,使得游戏的视觉表现与用户界面操作融合为有机的整体,给人们带来更为丰富的娱乐和体验,同时也给玩家带来无限激情。在当前的游戏开发领域中,Java有自己的独到之处,用Java编写的代码简单明了、可移植性强,所以本游戏的开发采用面向对象的设计方法,采用开源开发环境My Eclipse,界面利用Java Swing提供的图形类实现,游戏块的运行采用线程机制。1.3 毕设中用到的技术、工具等介绍在整个游戏的开发过程中涉及到Java基本知识的大部分内容,如事件、线程、动画、图形界面等方面的知识。主要内容如下:1.3.1 JavaJava是由Sun Microsystems公司于 1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。Java虚拟机(Java virtual machine JVM)是一种用软件模拟硬件功能实现的虚拟计算机。Java采用虚拟机技术实现Java程序的跨平台运行。若要进行Java开发,需要建立Java运行环境,可以下载JDK安装进行环境配置。有了环境就可以用任何文本编辑工具编写Java程序,对源程序进行编译,就可以解释程序运行了。Java编程语言的风格十分接近C语言、C+语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C+语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的性能。1.3.2 Java GUI编程利用Java实现的俄罗斯方块几乎能用到Java GUI的所有方面,其中包括Sun公司为Java 提供的两个图形界面类库:AWT:提供了建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台有关的图形用户界面(GUI)的类,这些类被称为构件(Components)1。Swing:是Java Foundation Classes(JFC)的一部分,与ATW的重量级构件不同,Swing中大部分是轻量级构件,不但有各式各样先进的构件,而且更为美观易用。在本俄罗斯方块游戏的实现中,主要采用Swing类库。1 基本窗口类图形用户界面的程序效果类似于Windows系统下运行的程序。在俄罗斯方块游戏中用到JFrame、JButton、JPanel和JDialog等几种窗口类。2 原子构件:俄罗斯方块游戏中用到的原子构件很多,如:JLabel、JList、JTextField等,这些构件的用法比较简单。3 菜单类:对一个大的GUI程序而言通常包括各种菜单,俄罗斯方块游戏中也包含多种菜单,如:JMenu、JMenuItem、JMenuBar等,Java为这些菜单构件提供了相应的类。4 事件处理:大多数的Java程序通过GUI构件(例如按钮、窗口、菜单等)与用户进行交互,俄罗斯方块游戏也是如此。俄罗斯方块游戏与用户最重要的交互活动时用户通过键盘来控制游戏、通过按钮和菜单来设置游戏。前者在Java中表现为键盘事件,后者表现为动作事件。在Java中事件由分层的事件类表示,而接口则描述了对特定事件的响应方法。想要处理这些事件的类就必须实现一个或多个接口以及这些接口中的方法。5 布局管理:Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局2。布局管理器按照布局说明选择构件的最佳位置,保证布局的总体外观在不同的操作系统下与Java程序的描述保持一致。一个布局管理器确定各构件在显示区域的次序、相对大小和相对位置。布局管理器在AWT中定义为接口,Java提供了若干类来实现它,其中最基本的类有:FlowLayout、GirdLayout、BorderLayout。6 图形类与图形的绘制:使用Graphics类提供的绘图方法“public void paint(Graphics g)”可以画出线条、矩形、圆形等图形。由于Frame类继承于Component类,所以可以通过覆盖所继承的paint 方法来进行绘图。还有一种很流行的绘图方法,即创建一个单独的类,这个类继承于Canvas类并且覆盖paint方法。俄罗斯方块游戏采用的是继承于Canvas类的方式。Graphics类Graphics类用于在一个可视构件内绘图。一个Graphics对象包含了绘图所必需包含的信息,其中包括坐标、色彩、字体和剪贴板区。绘图在一个二维整数坐标系中进行,该坐标的原点在构件的左上角。X轴在水平方向上从左至右增长,Y轴在垂直方向上从上至下增长。Canvas类Canvas是一个具有自己坐标系统的构件,使用布局管理器可以确定它在其他构件中的位置。Canvas继承于Component类,并继承了它的paint(Graphics g)、update(Graphics g)以及repaint()方法。使用Canvas作为绘图工具时首先创建一个类继承于Canvas类并且覆盖paint方法,再将这个类作为一个成员加入到类似于Frame或Applet(JFrame或JApplet)的类中,用某种布局管理器对其进行定位。这个类需要完成如下工作:Frame或Applet(JFrame或JApplet)作为控制者确定所有构件的位置、处理用户的输入、处理其他对象的交互。利用Canvas处理绘图,它的最重要的方法是paint,该方法可以被覆盖。在必要的时候还可以自己定义一些用于绘图的辅助方法。无论使用Graphics还是使用Canvas作为图形对象,都可在需要更新时自动调用repaint方法。repaint方法也可以直接在绘图程序中调用。在repaint中需要调用update方法,update方法在清除屏幕后再调用paint方法。paint方法也可以被实际应用需要的绘图代码进行覆盖。1.3.3 数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。1.3.4 Java线程机制以往我们开发的程序大多是单线程的,即一个程序只有一条从头至尾的执行线索。然而现实世界中的很多过程都具有多条线索同时动作的特性。Java语言的一大特性点就是内置对多线程的支持。多线程是同时存在几个执行体,按几条不同的执行线索共同工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。虽然执行线程给人一种几个事件同时发生的感觉,但这只是一种错觉,因为我们的计算机在任何给定的时刻只能执行那些线程中的一个。为了建立这些线程正在同步执行的感觉,Java快速地把控制从一个线程切换到另一个线程。俄罗斯方块的实现充分利用了Java的线程功能。在游戏过程中需要对玩家的控制进行实时处理。由于游戏中方块的动态性,每个方块都有一定的生命周期,所以选用线程来实现方块。一个方块用一个线程对象实现,该类继承于Thread类,当一个方块出现时也就表示一个线程产生并开始运行。通过对键盘消息的响应,实现移动、下落、变形等操作。利用多线程可以使整个游戏的结构更加松散耦合,使资源更加平衡,使用户的操作更加方便。1.3.5 开发工具My Eclipse10.0My Eclipse企业级工作平台(My Eclipse Enterprise Workbench ,简称My Eclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,JavaScript,Spring,SQL,Hibernate。My Eclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,My Eclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。My Eclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB,JDBC数据库链接工具等多项功能。可以说My Eclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。1.4 本文主要工作本论文的主要工作内容是基于Java GUI的俄罗斯方块游戏的设计与实现,全文总共分为五章。第二章主要是对基于Java GUI的俄罗斯方块游戏的可行性与需求进行分析,探究了游戏的功能及需求。第三章主要是研究概要设计阶段中的各个主要功能模块以及对数据库的设计。第四章主要是对概要设计的细化,详细地设计每个模块,完成了俄罗斯方块游戏的整体设计与实现。第五章主要是对各个模块的测试,尽可能地减少系统的缺陷和错误,以保证系统能正确的实现其预期的功能。1.5 本章小结本章以选题背景及意义出发,探究了选题目的,并介绍了毕设中用到的技术、工具等,凸显了改善现存俄罗斯方块游戏的单一模式,开发出一个可操作性强且兼具美观性的俄罗斯方块游戏的必要性,给人们带来更为丰富的娱乐和体验。同时也简单的介绍了本文的主要工作内容。2 需求分析需求分析是软件定义时期的最后一个阶段,也是关系到软件开发成败的关键步骤。它的基本任务是准确回答“系统必须做什么”这个问题3,即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求4。在需求分析这个阶段中,开发者要做大量的调查和研究,收集信息,明确系统功能。需求分析的结果是系统开发的基础,它的成功与否直接关系到项目的成败和软件的质量。对软件需求的理解程度是决定软件开发工作成功与否的至关重要的环节,需求分析的任务是发现、规范过程,有益于提高软件开发过程中的能见度;便于对软件开发过程进行控制与管理;便于采用工程方法开发软件,提高软件的质量;便于开发人员、维护人员、管理人员之间的交流、协作。这样有利于提高软件开发过程中的能见度, 便于对软件开发过程的控制与管理,便于采用工程化的模式开发软件,从而达到提高软件的质量,为开发人员、维护人员、管理人员之间的交流、协作提供便捷。作为工作成果的原始依据, 系统的需求分析可以向潜在用户传递软件功能、性能的需求, 使其能够判断该软件是否符合自己的需求。2.1 可行性分析系统开发的总体任务是实现游戏的可操作性、美观性、及时性。本游戏开发过程遵循软件工程规范,采用结构化和面向对象分析设计方法。主要实现Windows的GUI程序开发,对游戏中的图形图像进行键盘控制。游戏者可以通过自定义上下左右键及功能键来对游戏进行操作。下面从技术、经济、操作、法律三个方面分析本系统的可行性。2.1.1 技术可行性可用于俄罗斯方块游戏的编程语言有Java、VC+、C#.NET等,考虑到编写程序的可移植性,和对语言的了解程度以及各种编程语言自身的特点,选择Java作为编程语言进行开发。首先,作为一种程序设计语言,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 可移植性就是在这个系统上作的程序经过一次编译后可以移植到别的系统上解释执行,只要经过简单的粘贴和复制就行了,不影响程序的效果。安全性在服务器上运行的大多数Java(TM)程序是应用程序,所以“砂箱”安全性模型对它们不起限制作用。从安全性的观点看,Java 应用程序所受的安全性限制与服务器上的任何其它程序相同。要在服务器上运行 Java 程序,您必须对集成文件系统中的类文件具有权限。程序一旦启动,它就在该用户权限控制下运行。 您可以使用沿用权限来访问具有运行程序的用户的权限和程序拥有者权限的对象。沿用权限临时地将用户原先无权访问的对象的权限授予用户。并发性体现在JAVA支持多线程技术,就是多个线程并行机制,多线程是Java的一个重要方法,特别有利于在程序中实现并发任务。Java提供Thread线程类,实现了多线程的并发机制。然而,程序的并发执行必定会出现多个线程互斥访问临界资源的局面,因而并发系统解决的关键就是对临界资源的管理和分配问题,而在进行临界资源分配时有两方面需要考虑,即安全性和公平性。文中首先讨论了多线程并发系统中的安全性与公平性问题,指出安全性与公平性在并发系统中访问临界资源时的重要性。并通过火车行驶单行隧道的实例,演示各种条件下的行驶情况来进一步说明该问题。Java不依赖于机器的结构,并且提供了并发的机制,具有很高的性能。其次,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。同时还利用了Microsoft SQL Server数据库系统作为后台数据库,实现排行榜的存储和查询,确保了该系统中数据处理的高效性、快速性和安全性。2.1.2 经济可行性经济可行性包括两个方面的内容:一是某一备选方案占有和使用经济资源的可能性,进而实现政策目标的可能性;二是实施某一政策方案所需花费的成本和取得的收益。政府的财政资源是有限的,任何政策方案占有和使用的经济资源也是有限的。因此,任何一项公共政策都存在一个争取公共经济资源的问题。一般说来,“公共政策的经济资源的占有量与其政策目标的期望值成正比例关系。当然,这还涉及到一个成本效益问题。如果某一方案的成本大于收益,显然这项政策是不可行的。本游戏规模适中,工作复杂性比较低,实用性较强。从开发人力、物力、时间等方面上考虑,开发成本少,而且利用了开源开发环境My Eclipse,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,同时提高了项目开发的效率,降低了开发成本。由于需求分析完整,减少了很多后期维护的复杂性。另外,本系统具有很实用的现实意义。因此,从经济角度考虑本系统的开发在经济上是完全可行的。2.1.3 操作可行性俄罗斯方块作为一款风靡全球的多样化终端游戏,经久不衰。游戏自动随机输出7种形状的方块,经旋转后可形成21种形状,方块堆叠在一起,排列成完整的一行或多行可消除得分,积分达到一定程度会自动提升级别。本游戏是采用的是基于Java的GUI(图形用户界面)的组件创建的简单的有好的操作界面,运行效果简单明了,其中所有的功能均是根据基本需求进行开发。强调人机环境三者作为一个整体系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。对所有数据的输入进行完整性和合法性检查,尽量减少误操作。对于一般用户来说,俄罗斯方块规则简单,容易上手,但游戏过程却变化无穷。通过基于Java GUI的程序设计,实现经典的俄罗斯方块游戏,使其能在不同平台、不同系统、不同环境下进行运行,通过添加控制面板、更换皮肤面板等,增强了游戏的可操作性,使得游戏更加美观,每升高一级,堆积的方块和游戏背景都会变化,这也提高了用户体验,兼顾娱乐性和实用性。因此在操作可行性上分析是可行的。2.1.4 法律可行性本游戏的开发作为毕业课程设计以提高分析和解决实际问题的能力,以个人为单位、仅供个人平常娱乐所用,所用他人的成果部分都已注明。所以不存在侵权的问题。该软件是合法的,不会引起任何社会问题。因此,从法律上考虑本系统是可行的。2.1.5 可行性分析结论综上所述,本游戏在技术方面、经济方面、操作方面、法律方面均是可行的,由此得出结论:本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始着手编写。2.2 游戏功能分析2.2.1 项目目标项目实现了俄罗斯方块游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中加入了自定义控制键的功能,从而使游戏更符合玩家操作习惯;在功能键中设置了游戏暂停、显示方块阴影和快速下落等功能。力争使游戏具有可靠性,安全性,完整性,灵活性,开发出一款更加适合人们需求的俄罗斯方块游戏。2.2.2 系统概述屏幕上有一个X列Y行的区域,计算机自动产生7种不同形状的方块,并出现在区域的顶端,然后每过一个固定的时间向下落移动一格。玩家可用上、下、左、右及功能键来控制方块的旋转和移动,以便按照玩家所需要的形态和位置落下,不过前提是方块移动和旋转后的位置必须是空的。这7种方块可以旋转90°、180°、270°,因此每种方块有4种状态(特殊的方块除外),7种方块总共有21种状态。另外,在游戏区域产生一个新的方块的同时会立即产生下一个下落的方块并在界面区域显示。同时,在游戏界面的右下方,将显示玩家所得的分数以及游戏的当前等级。每当游戏玩家成功消除一行方块时,将按照一定的算法进行计算,从而得出所得分数,并修改游戏状态区域的分数和行数的数值。随着级数的升高,方块的下落速度会变快。下落方块可以通过旋转改变其显示形状,并且不断地往下落,直到它接触到游戏区域底部或者其他已经垒叠起来的下落方块。当一个下落方块到达游戏区域底部或者接触到其他已经堆积的方块后,其位置即确定下来,并占有该空间的位置区域。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,垒在其上的方块将按照一定的算法落下来代替该行空间。如果方块落下时, 有被方块填满的整行, 则该行可消去。每消去一行,玩家得分增加10分,如果可以连续消除两行就加30分,如果连续消除三行就加50分,如果消除四行就加70分,玩家消行够20行当前等级就增加一级。游戏的结束是以下落方块的顶部到达游戏区域顶部作为判断依据,若存在空格的方块填满整个窗口,则游戏失败。2.2.3 系统运行环境硬件环境:内存:4G,硬盘:500G,CPU:2.4GHZ以上软件环境: My Eclipse,JDK1.8和Microsoft SQL Server 2005数据库。2.2.4 系统功能需求1 游戏主界面功能需求友好的用户界面能够在视觉上吸引玩家。为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,在界面上设置了两个按钮分别是“开始”和“设置”。另外,为了能够实时的显示游戏的进度,还需在主界面下方添加进度条,用动态感来吸引玩家。设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,以达到让玩家眼前一亮的感觉,每升一级背景会变化,堆积的方块颜色也会变化,最开始的初级堆积的方块的颜色是白色的,之后是红橙黄绿青蓝紫的循环。并能在游戏达到高等级状态,方块下落速度渐高的情况下使玩家能够清楚的分辨出下落方块的形状以增加游戏的刺激性。2.2.4.2 游戏功能需求为了满足广大玩家的需要,游戏的界面采用JFrame界面来进行设计,使游戏界面更加美观大方。该界面由5个模块构成,分别是数据库记录、本地记录、控制面板、游戏状态显示面板和游戏画布。其中游戏状态显示面板中包括预提示面板,当前信息提示面板、分数消行显示面板。为了满足玩家的心理需求,还添加了排行榜的功能,方便玩家及时记录自己游戏战绩。为了进一步方便玩家的实际操作,还为部分操作添加了快捷键的功能,用户无需点击按钮或菜单项即可达到游戏目的。2.2.4.3 俄罗斯方块的需求良好的方块形状设计,绘制七种常见的基本图形,各个方块要能实现旋转变形、移动和显示。方块的旋转采用笛卡尔直角坐标系的90°旋转变换逆时针变形。2.2.4.4 键盘处理事件的需求方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(旋转变形),向下移动、向左移动、向右移动操作。除上下左右外,还有快速下落、显示阴影、暂停、作弊积分等四个功能键位。2.2.4.5 显示需求当方块填满一行时可以消行,剩余方块向下按照一定的算法向下移动并统计分数。当达到一定的分数时游戏升级,并显示游戏升级信息;当游戏方块填满整个屏幕时,游戏结束,并显示游戏结束信息。本游戏共设置多个级别,方块的下落速度随着级别的升高而加快。当方块充满主界面的每一行,方块不能再下落时,提示“Game Over”的字样。本游戏加入了动态进度条,随着目标的解禁,进度条会发生颜色的渐变。2.2.4.6 非功能性需求非功能性需求:本系统非功能性需求包括游戏主界面左上角显示图标需求、窗口尺寸可调整性需求、游戏运行时主界面弹出位置居中需求等。2.2.5 接口控制本游戏通过键盘和鼠标进行操作,在Windows 的操作系统下, 利用键盘的按键对方块进行移动、变形,要使用到键盘的接口事件。游戏使用鼠标对游戏进行全程控制,如游戏的开始、暂停、继续、查看游戏帮助、更改界面颜色、更改游戏等级等,通过对鼠标单击、按键添加监听事件, 编辑相应代码来实现相应功能。2.3 本章小结本章综述了本游戏在技术方面、经济方面、操作方面、法律方面均是可行的,对游戏的功能及需求也进行了分析,由此得出结论:本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始编写。3 概要设计概要设计是根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,这是一个在用户研究和设计之间架起桥梁,并将用户目标与需求转换成具体界面设计解决方案的重要阶段。3.1 概要设计概述本游戏的设计是以娱乐作为初衷,并且以益智为目的,在综合研究了以往的俄罗斯方块经典游戏功能的基础上进行推陈出新,加入了新的功能,赋予游戏以新的生机和活力。经过了需求分析阶段的工作,系统对于必须“做什么”已经清楚了,现在这个阶段是决定“怎么做”的时候了。总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题的5。通过这个阶段的工作将划分出组成系统的各个物理元素。总体设计部分的重要任务是确定软件的总体结构,也就是要确定系统中每个程序是有哪些模块组成的,以及这些模块之间的关系,同时也包括对数据库的设计,游戏总体设计如图3-1所示:图3-1 游戏的总体设计图3.2 概要设计思想俄罗斯方块游戏设计的主要从以下12个方面进行构思:(1)游戏主界面的设计。(2)界面方格的表示。(3)俄罗斯方块的表示。(4)俄罗斯方块的旋转。(5)俄罗斯方块的运动情况(包括向左、向右、向下)。(6)俄罗斯方块的自动消行功能。(7)游戏得分的计算

    注意事项

    本文(基于Java GUI的俄罗斯方块游戏论文.docx)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开