基于Java的游戏“俄罗斯方块”的设计与实现毕业设计.doc_第1页
基于Java的游戏“俄罗斯方块”的设计与实现毕业设计.doc_第2页
基于Java的游戏“俄罗斯方块”的设计与实现毕业设计.doc_第3页
基于Java的游戏“俄罗斯方块”的设计与实现毕业设计.doc_第4页
基于Java的游戏“俄罗斯方块”的设计与实现毕业设计.doc_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

西南交通大学本科毕业设计 第 IV 页基于Java的游戏“俄罗斯方块”的设计与实现毕业设计目 录第1章 绪论11.1 本设计的目的和意义11.2 国内外研究现状11.3 设计研究的主要内容、目标与工具21.3.1 设计的主要内容21.3.2 设计要达到的目标31.3.3 设计方法介绍3第2章 可行性分析72.1 可行性分析72.1.1 可行性研究的前提 要求 目标 条件、假定和限制82.1.2 对现有软件的分析82.2 所建议的软件92.2.1 游戏处理流程92.2.2 社会可行性分析102.2.3 技术可行性分析 执行平台方面 执行速度方面 语言特性与功能方面 开发环境方面 JBuilder开发工具132.2.4 经济可行性13第3章 需求分析143.1 任务概述143.1.1 目标143.1.2 用户的特点143.2 具体需求143.2.1 功能需求 游戏主界面模块需求 游戏图形区域界面的需求 方块下落速度需求 游戏分数需求 游戏排行榜需求153.2.2 属性需求15第4章 概要设计164.1 游戏功能164.2 功能模块设计164.2.1 总设计模块的划分164.2.2 游戏主界面模块174.2.3 游戏控制模块174.2.4 游戏设置模块184.2.5 游戏排行榜模块184.3 类模块设计194.3.1 类模块之间关系194.3.2 各类模块设计概要194.3.3 类和Java源文件对应关系204.4 程序设计的重点214.4.1 游戏图形界面的图形显示更新功能214.4.2 游戏方块的设计214.5 接口设计224.5.1 外部接口224.5.2 外部接口224.6 维护设计224.7 故障处理22第5章 详细设计245.1 程序主结构245.2 开发环境配置245.2.1 Java2的标准运行环境 J2SE SDK J2SE JRE J2SE Documentation255.2.2 J2SE的安装与配置安装过程 配置环境变量285.3 类模块程序流程图315.3.1 BlockGame类315.3.2 BlockFrame类325.3.3 Square类325.3.4 LevelDialog类325.3.5 Game类325.3.6 Score类345.3.7 SaveScoreDialog类345.3.8 ReportDialog类355.3.9 AboutDialog类355.4 类模块具体设计355.4.1 BlockGame.java程序355.4.2 BlockFrame.java程序3 BlockFrame类程序3 Game类程序3 LevelDialog类程序40 BlockFrame.java的UML图405.4.3 Score.java程序425.4.4 SaveScoreDialog.java程序435.4.5 Reportdialog.java程序465.4.6 AboutDialog.java程序485.4.7 Square.java程序495.5 安装文件的生成505.5.1 inno setup简介505.5.2 安装文件制作步骤505.6 游戏界面展示54第6章 软件测试586.1 程序代码调试586.1.1 用正常数据调试586.1.2 异常数据调试586.1.3 用错误数据调试586.2 程序功能测试586.2.1 模块功能测试596.2.2 确认测试60第7章 软件维护61结论62致谢63参考文献64附录 “俄罗斯方块游戏”程序源代码65西南交通大学本科毕业设计 第 89 页第1章 绪论1.1 本设计的目的和意义 俄罗斯方块游戏具有广泛的用户群,因为它比较简单有趣,无论老少都比较适合。俄罗斯方块的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。 俄罗斯方块游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个俄罗斯方块游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。正是因为如此,本次毕业设计的目的在于学习Java程序设计基本技术,学习用JBuilder开发Java程序的相关技术,熟悉游戏“俄罗斯方块”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握JBuilder环境的使用方法,培养起初步的项目分析能力和程序设计能力。 1.2 国内外研究现状 Java是当今企业级计算和应用中相当成熟和稳定的平台,在这个领域中不可否认地占据着领导地位。不但如此,Java在学术界也获得了强有力的支持:在国外的大学中,Java已经成为多数科学研究和计算使用的首选语言;越来越多的尖端学术研究完全使用Java语言;各行业的公司都有很多的Java程序员在开发他们的项目。Java作为软件开发的一种革命性的技术,其地位已经被确立。首先,计算机产业的许多大公司都购买了Java的许可证,包括:IBM、Apple、DEC、Adobe、HP、SiliconGraphics、Oracel、Toshiba以及最不情愿的Microsoft等。其次,众多的软件开发商都支持Java的软件产品。今天是以网络为中心的计算机时代,不支持HTML和Java,应用程序的应用范围就只能局限于相同的硬件平台。Borland公司开发的基于Java的快速应用程序开发环境Latte已在1996年中期发布,Borland公司的这一举措推动了Java进入PC机软件市场。Sun公司自己的Java开发环境JavaWorkshop已经发布。许多知名的数据库厂商都在开发CGI接口,支持HTML和Java。再有,Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。Intranet的工作方式可以描述为不同类型的Intranet用户通过界面统一的Intranet浏览器访问位于不同环境中的Intranet服务器上的信息。这一过程在基于Java的解决方案支持下实现将使无论是开发人员还是管理人员,抑或是用户都受益无穷。Java语言正在不断地发展和完善,Sun公司是主要的发展推动者。Sun公司开发的较为统用的编译环境有:Java Develop Kit和Java Workshop。还有许多其它公司也开发了或正在开发Java语言的编译器与集成环境。如,Borland公司的JBuilder、Microsoft公司的Visual J+等。随着Java语言的大行其道,Java开发工具也如雨后春笋般纷纷涌现。据一些权威机构的调查,国外Java开发工具已经有上百种之多。这些工具各有侧重点,也各有优势,其中以Eclipse、NetBeans、Rational Developer和JBuilder最具代表性。与日、韩等国相比,中国的基于Java的游戏市场起步比较晚,但中国有一个巨大的游戏用户群,它拥有广阔的市场前景。随着Java游戏产业发展环境的日益成熟,其发展速度将一日千里。Java是一个受业界重视的、面向对象的语言。它支持继承性、封装、多态性、多线程、动态连接与接口。而Java之所以会赢得专业开发者如此热烈的拥护是因为:首先,Java很像C+,很容易为有经验的程序员掌握使用,但它比C+有很大的改进。Java更容易编写可移植、可重用、无错误的程序。其次,Java的交叉平台的兼容性是它迅速获得成功的主要因素。随着技术的发展,Java语言的正确性与效率都将会有更大的提高,用户用Java编程将会比用能够C+编程更加方便。1.3 设计研究的主要内容、目标与工具1.3.1 设计的主要内容 俄罗斯方块游戏设计与实现,主要分为以下四个模块:游戏主界面模块、游戏设置模块、游戏控制模块以及游戏排行榜模块。实现游戏的开始、暂停、退出、记录分数、游戏方块下落速度调整、游戏新生方块的预览以及游戏排行榜等功能。1.3.2 设计要达到的目标 本次设计要达到的目标分别从以下模块进行阐述: 游戏主界面模块:游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、新生方块的预览、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏设置模块、游戏控制模块: 这两个模块是游戏的中心环节,主要完成设置游戏的方块下落速度、显示游戏分数、以及控制游戏的开始、暂停、退出等功能。为了能够给玩家一个很好的游戏环境,这两部分应该做到易懂、易操作。 游戏排行榜模块: 游戏的排行榜用来显示游戏结束后,玩家所得分数的排名情况。这一模块应该尽量做到美观且准确。1.3.3 设计方法介绍本次设计采用基于Java的程序设计技术,以及用JBuilder开发Java程序的相关技术,其中JBuilder主要用来做游戏的主界面模块。下面简单介绍一下Java和JBuilder开发环境。 Java语言的特点Java 最初叫Oak ,是由Sun公司开发的面向对象的编程语言,从表面上看,它有许多地方和C ,C+类似,但比它们更简洁和更容易设计。1) Java是纯面向对象语言:Java语言不能在类的外面定义数据和函数。所有对象都派生自同一个基类Object,并共享它所有的功能。Java只支持单一继承,但通过接口可支持有限形式的多重继承。 2) 平台无关性:用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关分为两种:源代码级和目标代码级。 3) 分布式:分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。 Java支持 WWW 客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫做 URL 的对象,利用这个对象,你可以打开并访问具有相同 URL 地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。Java提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便地实现Java 的分布式特性。 4) 可靠性和安全性:Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java 虽然源于C+,但它消除了许多C+不可靠因素,可以防止许多编程错误。首先, Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java 提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得Java成为安全的编程语言。 5) 多线程: Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java 语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类 Thread ,由它负责启动、运行、终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便地写出支持多线程的应用程序,提高程序执行效率。 Java平台Java平台是一种全新的软件平台,它主要由两部分组成:Java VM和Java API(应用编程接口)。Java虚拟机是Java平台的核心,它可以用软件实现,也可以用硬件实现。Java虚拟机屏蔽了底层的操作系统,给所有Java程序员一个完全相同的虚拟平台。Java API为Java小应用程序和应用软件的标准接口,是应用开发的基本框架,是开放的和可扩展的。它为各个关键领域规定了一系列的基本接口,让程序员开发Java应用。Java API包括两部分:Java基本API和Java标准扩展API。Java基本API包括了Java语言的基本部分、实用程序、I/O、网络、图形用户接口等。开发多种Java API,使Java成为更强有力的平台。除了已在JDK1.02中发表的标准API外,还开发了JDBC,用来增强Java访问众多不同数据源的能力,从此Java将以统一的接口访问35种以上不同数据源,如Foxpro、Oracle、Sybase、Informix、DB2等等。 Java 开发工具JDK Java 开发工具(JDK)是许多 Java 专家最初使用的开发环境。尽管许多编程人员己经使用第三方的开发工具,但 JDK 仍被当作 Java 开发的重要工具。JDK 由一个标准类库和一组建立、测试及建立文档的 Java 实用程序组成。其核心Java API 是一些预定义的类库,开发人员需要用这些类来访问 Java 语言的功能。 Java API 包括一些重要的语言结构以及基本图形、网络和文件 I/O。一般来说, Java API 的非I/O部分对于运行 Java 的所有平台是相同的,而I/O部分则仅在通用 Java 环境中实现。作为 JDK 实用程序,工具库中有七种主要程序。Javac: Java编译器,将Java源代码转换成字节码。 Java: Java解释器,直接从类文件执行Java应用程序字节代码。 Appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javadoc:根据Java源码以及说明语句生成HTML文档。Jdb:Java试调器,可以逐行执行程序,设置断点和检查变量。Javah:产生可以调用Java过程的C过程,或者建立能够被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示译类文件中的可访问功能和数据,同时显示字节代码含义。 介绍JBuilder开发环境 JBuilder是最强大的、最易于使用的Java快速开发工具。JBuilder把Java编程语言的威力和图形用户界面化的快速开发环境的易用性有机地结合在一起。 JBuilder的向导可以使创建应用程序、类和工程的过程变得非常简单。设计器与双向开发工具的使用使图形界面的设计变得很容易。 JBuilder中使用GUI环境来创建基于关系数据库的客户机/服务器应用程序。方便地创建类和JavaBean,以提高当前应用程序或小程序的开发进度,并提高以后的工程的性能。第2章 可行性分析随着人们生活水平的不断提高,人们对精神生活水平的要求也随之提高。游戏,不但可以放松身心,有的还可以开发智力。它作为一种娱乐项目也在不断地发展,并在我国逐渐地发展壮大。现在的市场上,已经出现了各种各样,适合不同年龄段和不同人群的游戏。比如:极品飞车、大富翁、魔兽、星际争霸,再比如连连看、蜘蛛牌、扫雷等一些小游戏,都是现在比较受到大家欢迎的娱乐休闲游戏。并且,随着互联网的发展,许多游戏不但有单机版的,而且还有网络版的。迄今为止,游戏产业在我国已经发展为一个庞大的产业,为许多相关行业带来了巨大的经济收益。本次毕业设计所开发的基于Java的俄罗斯方块游戏,具有操作简单,界面较美观等优点,可以作为休闲和智力开发之用,有一定的实用性。下面从几个方面来分析本游戏的可行性。 2.1 可行性分析本可行性分析的目的在于在该项目投资决策前,通过对项目有关工程技术、经济、社会等方面的条件和情况进行调查、研究、分析,对各种可能的技术方案进行比较论证,并对项目建成后的各方面效益进行预测和分析,可行性分析是考察所开发软件的可能性和可行性,继而确定项目投资建设是否可行的科学分析方法。2.1.1 可行性研究的前提 要求 功能:本设计所开发的是基于Java的一个俄罗斯方块游戏软件,主要实现游戏的开始、暂停、退出、方块下落速度改变以及游戏排行榜等功能,分为: 游戏主界面模块、游戏设置模块、游戏控制模块以及游戏排行榜模块四个模块。 性能:本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。 目标 游戏主界面模块:主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、游戏方块预览界面、游戏开始按钮、暂停游戏按钮、关闭按钮以及查看分数按钮。游戏的主界面应该力求美观,爽心悦目。 游戏设置模块:主要用来设置游戏的方块下落速度、显示游戏分数,这部分应该做到易懂、易操作而且准确率高,不易出错。 游戏控制模块:主要完成控制游戏的开始、暂停、退出等功能,这部分应该做到易懂、易操作而且准确率高,不易出错。 游戏排行榜模块: 游戏的排行榜用来显示游戏结束后,玩家所得分数的排名情况。这一模块应该尽量做到美观且结果准确。 条件、假定和限制 硬件配备不齐,内存不够,需升级到512MB。电脑的性能相对不够稳定,对Java和JBuilder等开发工具运行有不利影响。 可利用的信息和资源比较单一,需求分析主要来源于对学校玩游戏同学的询问,以及自身对俄罗斯方块游戏的体会。而技术方面,对Java编程语言的掌握和JBuilder开发工具的运用还有待提高。其余包括经济效益、社会效益分析则靠网上查阅资料获得。2.1.2 对现有软件的分析经过调查分析,现有的很多单机版的俄罗斯方块游戏存在以下几个不足: 大多都没有游戏排名这一功能:许多玩家在游戏结束以后都习惯查看自己的分数以及排名,以便下次再进入时有新的目标。而现有的许多单机版小游戏都缺少这一功能,这样的游戏是不完整的,可行性不高。 采用的编程语言可移植性较差,不能解决平台异构问题:游戏的可移植性直接决定了所开发游戏的用户群大小。现有的很多俄罗斯方块游戏,多不用Java这一平台无关性较好的编程语言来开发。使游戏很难在不同的软硬件平台上运行,给用户造成了一些不便。 程序的出错率较高:C+有很多不可靠因素,发生许多编程错误。比如:C+中的指针会可能会造成内存的非法访问;大多编程语言没有自动单元收集,不能防止内存丢失等动态内存分配导致的问题;没有自己的安全机制,不能有效防止病毒程序的产生和下载程序对本地系统的威胁破坏。现有的很多单机版的俄罗斯方块游戏已经不能很好的解决用户的需求。基于用户对游戏的更高要求,用Java这种更适合游戏开发的语言,来编写出功能更加完善的俄罗斯方块游戏是非常有必要的。 2.2 所建议的软件 本次毕业设计所涉及和实现的是用Java编程语言和JBuilder开发工具开发的俄罗斯方块游戏。由于采用Java编程语言,解决了一些2.1.2这一目中所叙述的现有游戏的不足。 本次设计的系统环境及工具如下: 运行环境:平台无关的Java 2运行环境 编程语言:Java 使用工具:JBuilder 20052.2.1 游戏处理流程 本次游戏设计的处理流程如图2-1所示。单击“开始游戏”按钮, 游戏开始,方块下落键盘操作: 翻转左移右移向下加速移动没有满行且方块至顶游戏结束单击“退出游戏”退出游戏游戏中途欲中断,稍后继续游戏单击“暂停游戏”游戏暂停进入前十,提示输入姓名进行排名进入游戏画面查看以往排名再次单击开始游戏,游戏恢复图2-1 游戏处理流程图2.2.2 社会可行性分析就大多数玩家而言,由于玩家玩本游戏时,不会也不必关心游戏内部的结构及实现方法,即对用户来说是透明的,所以本游戏对用户而言,是定位在界面友好、操作方便、功能齐全的原则上的,用户只需一台电脑,简单地用鼠标点击各页面上的链接或按钮就能执行相应的功能,从而顺利地上手本游戏。对于游戏软件维护者而言,由于本游戏所运用的开发技术安全性很高,因此本游戏在维护方面也不存在很大问题。2.2.3 技术可行性分析 执行平台方面 Java程序具有跨平台的能力,相信这句话对于大多数的程序执行员来说都没有异议。所谓跨平台功能,指的是Java程序可以在不重新编译的情况下,直接运行于不同的操作系统上。这个机制之所以可以运行的原因在于“字节码”与“Java执行环境”的良好配合。Java程序在编写完成之后,第一次使用编译器编译程序时,会产生一个与平台无关的字节码文件,其扩展名为*.class字节码是一种贴近于及其语言的编码,这个文件若要加载到内存中执行,则计算机上必须装有Java执行环境,Java执行环境与平台兼容,会根据该平台对字节码进行第二次编译,而成为平台上可理解的机器语言,并加载到内存中加以执行,如图2-2所示为Java程序执行流程。图2-2 Java程序执行流程Java执行环境是构建于操作系统上的一个虚拟机器,程序设计人员只要针对这个执行环境进行程序设计,而无需理会执行环境如何与操作系统进行沟通的问题。程序设计人员只要利用Java所提供的类别库与API,基本上就可以达到跨平台的目的。程序设计人员与Java执行环境之间的关系如图2-3所示。图2-3 程序设计人员与Java执行环境之间的关系 Java程序若应用在游戏上,有两种显示方式。一种是窗口应用程序,另外一种是使用Applet内嵌于网页之中。本次设计采用的是第二种方式。综上所述,在设计游戏方面,Java将是一个良好的设计平台。 执行速度方面执行速度永远是游戏设计时考虑的一个重要因素,而这也是对Java程序最不利的地方。程序员对Java程序执行速度的普遍评价就是“慢”,这是因为Java程序在执行前必须经过第二次编译,且Java程序只有在需要使用到某些类别库功能时才加载相关的类别,虽然考虑了资源的使用,但动态加载多少造成了执行速度的延迟。后来的Java版本,在编译与加载的速度上作了极大的改善。而且计算机速度的提高也弥补了速度慢的缺点。所以在本次设计中,用Java开发俄罗斯方块游戏在执行速度上影响不大。 语言特性与功能方面Java程序是以C+的关键字语法为基础,但过滤了C+中的一些容易犯错或者忽略的功能,例如指针的运用,并采用“垃圾收集器”机制来管理无用的对象资源。这些都使得Java程序极为容易编写且较不容易发生错误。Java程序无论是在绘图、网络、多媒体等各方面都提供了相当多的资源,使其在游戏开发方面有很大的发展空间。 开发环境方面为Java设计的整合开发环境相当多,例如商业软件的Visual J+、JBuilder,非商业软件的forte、NetBeans等。本次开发的游戏属于小游戏,所以其整合式开发环境对游戏设计的影响并不大。 JBuilder开发工具JBuilder开发工具是最强大的、最易于使用的Java快速开发工具。JBuilder把Java编程语言的威力和图形用户界面的化的快速开发环境的易用性有机地结合在一起,它使图形界面的设计变得很容易,并能够提高以后的工程性能。因此Java和JBuilder的结合,将使本次设计的技术可行性大大提高。总结:通过几方面的分析,用Java编程语言,结合JBuilder开发工具开发俄罗斯方块游戏在技术方面的可行性是相当高的。 2.2.4 经济可行性Java平台的自由和开放性使得开发人员投资很少,但却提供给他们必需的灵活性以及大量的支持。游戏的易于维护性也使本游戏的开发投资大大减少。第3章 需求分析需求分析工作是软件生存周期中重要的一步,也是起决定性的一步。通过它可以全面了解整个系统的功能和性能方面的要求,为软件设计打下坚实的基础。该部分的目标主要有:获得目标系统的物理模型,了解目标系统是如何运行的;抽象出目标系统的逻辑模型,对物理模型进行筛选,得到与软件系统有关的部分;建立目标系统的逻辑模型,得出数据流图和数据字典;补充目标系统的逻辑模型,对目标系统的用户界面,至今尚未考虑的细节进行说明。3.1 任务概述3.1.1 目标采用基于Java的程序设计技术,以及用JBuilder开发Java程序的相关技术开发出具有良好用户界面,操作简单易学,游戏功能齐全且有益于智力开发的俄罗斯方块游戏。从游戏的设计与实现中锻炼自己的Java编程水平,熟悉JBuilder开发工具的使用。由于本次设计是我第一接触Java编程语言和第一次使用JBuilder开发工具,也是第一次与开发游戏打交道。因此在本次俄罗斯方块游戏的开发过程中,我力求代码准确,界面尽量美观,按照需求实现游戏的各个功能。3.1.2 用户的特点 游戏开发成功后,最终用户为各个年龄段的人群,用户范围相当广泛。本游戏友好的用户界面,简单易学的按钮操作以及简单通俗的游戏规则,使广大的用户不需要专门进行培训,就可以立即学会如何使用。3.2 具体需求3.2.1 功能需求 游戏主界面模块需求游戏界面主框架主要包括游戏图形区域界面、游戏速度选择更新界面、游戏分数的现实更新界面、新生方块的预览界面、游戏开始按钮、游戏暂停按钮、关闭按钮以及排行榜查询按钮。 游戏图形区域界面的需求游戏画布区主要应该包括游戏画布中方块的显示更新、整行方块的删除和更新、新生方块的预览区域。正在下落方块的颜色和已经落下的方块颜色应当不同,且每个方块颜色应当尽量美观且变化明显。方块的整行删除应当不影响游戏的进程。 方块下落速度需求 方块的下落速度应该可以通过简单的按钮或者菜单进行自如调节。速度等级分为010 这十一个等级,并且在游戏进行一段时间后,游戏等级应该自动加高。调节等级时,应该在相应易见的区域显示玩家调整以后的当前等级。 游戏分数需求游戏的分数方面需求如下:游戏开始后,进行满行删除,每删除一行方块分数就增加,直到游戏结束后,分数停止增加。分数增加的同时,应该在相应的易见的区域显示增加后的分数。 游戏排行榜需求 游戏结束后,如果进入前十名则提示输入姓名,玩家愿意进行本轮游戏的排名,则进行肯定选择,然后输入玩家姓名便可以查看刚结束那轮游戏分数的排名。如果不愿意参加排名,则退出对话框,然后退出游戏或者按开始按钮,重新开始游戏。 刚进入游戏界面,没有开始游戏时,也可以查看以往前十名万家排名表,以便玩家在开始游戏之前有奋斗目标。 游戏排名只取分数排在前十位的玩家。 3.2.2 属性需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,连接速度快,以确保系统可使用性好。在安全保密性方面,系统需设置防火墙。另外,还要求系统的可扩展性、可维护性、可移植性良好。第4章 概要设计软件开发过程中的概要设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。4.1 游戏功能 本系统主要完成以下几方面的功能:1. 游戏控制功能包括游戏的开始、暂停、退出2. 游戏设置功能即方块下落速度的调整3. 图表的输出即排行榜的输出4. 界面布局5. 统计即对游戏分数的统计6. 排序对玩家所得分数的排序7. 其他辅助功能4.2 功能模块设计4.2.1 总设计模块的划分根据游戏需求中游戏所要实现的功能,整个游戏分为四个模块进行具体的设计,如图4-1所示。俄罗斯方块游戏游戏主界面模块游戏设置模块游戏控制模块游戏排行榜模块图4-1 游戏总设计模块4.2.2 游戏主界面模块游戏界面主框架主要包括游戏图形区域界面、游戏速度的选择更新界面、游戏分数的显示更新界面、游戏的开始按钮、暂停按钮、游戏的退出按钮以及显示游戏排行榜按钮。游戏界面主框架的主要结构图如图4-2所示。游戏的主界面框架游戏图形区域界面(即游戏画布)游戏速度调节界面游戏分数显示界面游戏控制按钮界面图4-2 游戏主界面框架新生方块预览界面4.2.3 游戏控制模块 游戏控制模块主要通过主界面上的按钮来控制游戏的开始、游戏的暂停、游戏的退出这三个功能以及控制游戏分数变化。在这个模块中,需要给各个按钮或文本框加入代码,来对上述的功能加以进一步的实现。 游戏控制模块的主要框架如图4-3所示。游戏控制模块游戏的开始功能游戏的暂停功能游戏的退出功能游戏分数的增加图4-3 游戏控制模块框架 游戏开始控制:单击“游戏开始”按钮,游戏画布即有方块下落,游戏正式开始。 游戏暂停控制:单击“暂停游戏”按钮,游戏暂停;再单击,游戏继续。 游戏退出控制:单击“退出游戏”按钮,退出该游戏。 分数增加控制:对方块进行合理的堆放,满行删除,每删除一行分数做相应的增加。4.2.4 游戏设置模块 游戏设置模块主要是对游戏方块下落速度的控制。玩家单击“设置级别”按钮,在弹出的对话框中选择游戏级别,然后点“确定”。这样在游戏开始后,方块将以相应的速度下落,下落速度会在每30个方块下落之后,在原来的基础上自动提高一级。游戏的过程中不能改变级别。4.2.5 游戏排行榜模块 这一模块包括对玩家所得分数的排名以及查看游戏排名两个功能。下面列出一个简单的框架如图4-4所示。游戏排行榜模块参与排名单击“暂停游戏”按钮查看排名单击“暂停游戏”按钮图4-4 游戏排行榜模块框架4.3 类模块设计4.3.1 类模块之间关系通过对功能要求的分析,将俄罗斯方块游戏功能划分为9个类模块,他们的关系如图4-5所示。BlockGame(主类)BlockFrame(用户界面类)LevelDialog(游戏等级 对话框)Game(游戏界面 及内容)ReportDialog(排行榜对 话框) AboutDialog(关于 对话框)Square(方块)SaveScoreDialog(输入名字对话框)Score(分数)图4-5 俄罗斯方块类之间的关系4.3.2 各类模块设计概要 BlockGame类该类包含main方法,为应用程序的主类。该类用来创建游戏的用户界面,整个程序从该类的main方法开始执行。 BlockFrame类用来设计游戏的用户界面。在该界面上有用户玩游戏的功能菜单、游戏界面及游戏的状态栏。 Game类用来设计游戏界面。游戏界面显示在由BlockFrame类创建的整个用户界面中的(Center)区,游戏的即时分数、等级、堆积木的二维平面即时效果图及方块的预览功能都在这各类中实现。 Square类 用来封装俄罗斯小方块。一个方块的属性是由方块的位置即x和y的坐标和颜色来决定的。 LevelDialog类用来设计设定游戏等级的对话框。该对话框用来让玩家调整游戏的级别。 Score类 用来从文件中取得原来玩家的得分,并且提供判断玩家的得分是否进入了前十名的方法及将进入前十名的玩家名字和分数写入文档的方法。 SaveScoreDialog类 用来设计输入玩家名字的对话框。在游戏结束时,如果玩家的分数进入了前十名,由应用程序自动弹出该对话框。当在该对话框中点击“确定”按钮时,将调用Score类的相应方法将玩家的名字和分数输入文件中。 ReportDialog类 用来生成排行榜对话框。该类从文件中读取记录的名字和分数,然后将其显示在对话框的相应组件中。 AboutDialog类用来生成“帮助”对话框。在该对话框上显示了俄罗斯方块游戏的一些信息。4.3.3 类和Java源文件对应关系表4-1 类和Java源文件对应关系表Java源文件BlockGame.javaBlockFram.javaSquare.javaScore.java类名称BlockGameBlockFramGameLevelDialogSquareScoreJava源文件SaveScoreDialog.javaReportDialog.javaAboutDialog.java类名称SaveScoreDialogReportDialogAboutDialog4.4 程序设计的重点4.4.1 游戏图形界面的图形显示更新功能游戏的图形区域界面主要是一个图形显示更新区域,主要包括方块显示更新、整行方块的删除和更新、进行中和游戏结束时的分数更新和游戏图形区域界面的清除。游戏图形区域又很多小方格组成,主要是一个表格,根据相应格子的设置标志来显示相应的图形图片,这样就实现了俄罗斯方块的实时显示。4.4.2 游戏方块的设计在俄罗斯方块游戏中,具体的游戏方块图形的设计是比较重要的一个方面。因为俄罗斯方块游戏中主要的游戏动作就是控制游戏方块的移动和翻转,以便于组成一行行连续的方块,从而增加游戏分数。由于主要的游戏动作都集中在这个方块上,因此游戏方块的设计就显得格外重要。为了增加程序的可扩展性,这里设计一个游戏方块的基类,各个具体的游戏方块都从这个基类开始继承。这样,当需要增加新的游戏方块是就不用重新设计新的类,只需要从这个基类继承出一个类就可以了。根据基类设计几个派生游戏方块类,其结构图如图4-6所示。游戏方块基类游戏方块继承类游戏方块继承类游戏方块继承类游戏方块继承类图4-6 游戏方块类结构4.5 接口设计4.5.1 外部接口 用户界面本软件的屏幕格式,按钮格式,输入输出方式等都是完全按照人性化的设计,方便用户执行各种操作。各个按钮简单明了,互动性强,适用于各类人群。用户通过主界面的按钮进行游戏的控制,同时系统返回一个信息。 硬件接口本软件产品的用户需要通过键盘及鼠标进行操作,进入主界面后点击相应的按钮,进行规定的键盘操作,然后分别在主界面有相应的动作反应。 本软件与操作平台无关,能适用于各种操作系统。4.5.2 外部接口 内部模块之间的接口是通过内部函数完成,在程序设计中用设计软件本身所带的调用函数实现。4.6 维护设计 出错及其纠正方法当按钮输入键盘操作有错误时,提示错误,需要重进行操作。如遇到致命性错误需重新启动本软件,问题可以解决。 验证规程该软件在打包封装前可对程序作所需修改,验证其性能后可以通过装载程序来完成。 源程序和流程图源程序是用基于JAVA语言设计完成的,与操作平台无关,简单易用。4.7 故障处理 内部故障处理在设计开发阶段可以随时修改程序里的相应内容。 外部故障处理 对已编辑的程序进行装载时,第一次装载系统认为错误,进行修改。第二次运行时,在需求调用时出错,有错误提示,需重新调试。第5章 详细设计详细设计说明书对俄罗斯方块游戏的总体设计和各模块的功能、性能、输入输出、算法、接口、程序逻辑、存储分配及其它给出了详细的设计方案,为软件开发制定详细的计划,同时也提交系统分析员,由其提出意见。这是程序员进行开发及未来测试的重要文档资料。5.1 程序主结构 本次所设计俄罗斯方块游戏的程序主结构如图5-1所示。初始化进入事件等待状态初始化失败不正常退出开始请求相关事件返回暂停请求查看排行榜退出正常退出图5-1 俄罗斯方块程序主结构5.2 开发环境配置5.2.1 Java2的标准运行环境 Java2的标准运行环境从Sun Microsystems的网站:,免费下载许多相关文件,其中包括:J2SE SDK、J2SE JRE、J2SE Documentation等。 J2SE SDKJava2 Standard Edition Software Development Kit,包含创建Java2应用的开发工具(Development Tools)、示例 (Demos)、源代码(Source Code) 、JRE、插件(Plug-in)等,是J2SE JRE的超级,是创建Java2应用的必要文件。 J2sdk-1_4_2_05-windows-i586-p.exe(for Windows) J2sdk-1_4_2_05-linux-i586.bin(for Linux) J2SE JREJava2 Standard Edition Java Runtime Environment,包含允许终端用户运行Java 2应用的环境,是J2SE SDK的子级,是运行Java2应用的必要文件。 J2re-1_4_2_05-windows-i586-p.exe(for Windows) J2re-1_4_2_05-linux-i586.bin(for Linux) J2SE DocumentationJava2 Standard Edition Documentation包含Java2的在线帮助文档。 J2sdk-1_4_2-doc.zip5.2.2 J2SE的安装与配置安装过程Java2的标准运行环境在Windows平台下的安装过程如图5-2所示。Step1.从官方网站下载免费安装软件:网址Step2.运行安装文件J2sdk-1_4_2_05-windows-i586-p.exe;如图5-2所示:图5-2 运行安装文件Step3.上面安装文件自动运行后出现如图5-3所示画面,选择图中所示选项,然后单击Next按钮;图5-3 安装步骤Step3Step4.上一步骤运行后出现如图5-4所示画面,选择你要安装的路径,这里选择安装路径为C:j2sdk1.4.2_10,选择好后,单击Next按钮;图5-4 安装步骤Step4Step5.步骤4运行后出现如图5-5所示的画面,选中画面中的单选框,单击Install按钮,开始安装;图5-5 安装步骤Step5Step6.步骤4运行后出现如图5-6所示的画面,单击Finish按钮,安装完成。图5-6 安装步骤Step 配置环境变量 在环境变量的配置中,假设JDK的安装目录为:C:j2sdk1.4.2_10。 环境变量PATH方法一,在C:Autoexe.bat文件的底部或者最后一个PATH命令之后,输入:SET PATH=% PATH%;C:j2sdk1.4.2_05bin方法二,在“系统属性”对话框中直接设置环境变量:PATH=;C:j2sdk1.4.2_05bin,具体操作参考Step1、Step2。Step1.在我的电脑图标单击鼠标右键,选中“属性”一栏,如图5-7所示;图5-7 配置环境变量Step1Step2.如图5-8所示的界面,选中“高级”,单击“环境变量”按钮;Step3.如图5-9所

温馨提示

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

评论

0/150

提交评论