原创论文网 原创论文网

原创论文网电话
免费咨询热线电话
15871151735
首页 > 论文 > 计算机 >

俄罗斯方块游戏的设计与实现

论文库:计算机 时间:2022-01-19 13:03:07 点击:

摘要:电子游戏的出现,给人们提供了一种简单轻松、可互动和利用空闲时间放松的快速休闲方式。俄罗斯方块是一款经久不衰的方块益智游戏,俄罗斯方块规则比较简单,游戏中随机出现形状不同的方块并且在一定的时间不停的产生,这些方块在不停地下降。游玩者可以操作对这些方块进行形状变换,和控制它们水平方向移动,如果屏幕上某行中都填充了方块,那么该行就会消除。俄罗斯方块游戏看似简单却又变化无穷,游戏容易上手同时也富有挑战性,一直受到大众的青睐。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
论文着重研究如何提高游戏的可玩性,采用eclipse开发环境,利用Java语言及用户图形界面技术进行编程开发。在游戏操控上对方块的变换产生、旋转处理、越界和重叠处理进行了算法优化;游戏界面背景处理上用Photoshop工具对方块的颜色,游戏界面显示等进行了优化;在游戏策略上对游戏等级提升,游戏数据储存和设置等操作进行了修改和完善。画面优美,可玩性强,提升了游戏的可玩性。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
关键字:电子游戏;俄罗斯方块;编程开发;图形界面Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
1 引言Avn原创论文网_专业的研究生论文网站
电子游戏的出现,给人们提供了一种简单轻松、可互动和利用空闲时间放松的快速休闲方式,如今人们的工作压力随着生活节奏的提高而逐渐增加,闲暇之余需要放松和玩乐,而电子游戏正是因为满足了人们的这种需求而得到快速发展。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
世界第一大游戏市场美国,电子游戏出口国日本以及号称网游最发达的韩国对促进电子游戏的发展做出来重要贡献,也推动了电子游戏开发技术水平的提高。电子游戏行业更是成为一些国家的经济和消费发展的重要手段,得到了政府在经济,科技,人才等方面的大力支持,促进了游戏开发技术知识库的充实。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
俄罗斯方块是一种方块堆积和消除的益智游戏,在电脑和手机上被大量安装,用户群体庞大。俄罗斯方块早已风靡世界近数十年,这些年随着终端硬件技术的提升以及电子游戏文化的飞速发展,各种新版本和新玩法层出不穷。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
俄罗斯方块在中国也是广为流行,玩者甚众。俄罗斯方块游戏是很多人的第一款电子游戏,它推动了中国电子游戏产业的发展。虽然中国电子游戏产业和玩家每年都在增长,但我国在电子游戏行业的发展与一些发达国家相比,从平台、创意、美工和技术等多方面还有不少差距,而这也是国内为什么开发不出像俄罗斯方块这样经久不衰的游戏的原因。如今,国产游戏逐渐取代国外游戏占领国内游戏市场,这也是国内游戏行业得到越来越多的关注的功劳。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
论文重点研究如何增加游戏的可玩性,在游戏操控,背景修改,游戏策略和设置等操作进行了修改和完善。增强了游戏模式、优化了游戏界面, 提升了界面效果, 满足了游戏玩家玩游戏时在反应能力、逻辑思维能力等感知度的提升,提高了游戏的趣味性。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
2 系统基本分析Avn原创论文网_专业的研究生论文网站
2.1 系统需求分析Avn原创论文网_专业的研究生论文网站

  1. 总体流程要求:Avn原创论文网_专业的研究生论文网站

该游戏系统在游戏运行时,每次从7种不同形状的游戏方块中随机生成一种,而玩家通过键盘控制方块的形状变形以及下落位置和速度来调节玩家的方块下落意向,方块将会固定在一处位置,按照这种方式,如果底部已经固定的方块堆中有一行被小方块铺满,则将这行小方块消除并且玩家得到相应分数,当玩家分数累计到一定值之后,将提高游戏等级。当游戏方块堆积到游戏顶部使得新的方块无法下落时,则游戏失败,此时游戏将储存玩家此时所得的总分数并让玩家输入名字记录于数据库中。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
一个成功的游戏不仅要能体现游戏本身的功能,更要能吸引玩家沉浸其中,因此要提高游戏的可玩性和娱乐性,因而游戏操控和界面设计必须要给予重点关注。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. 该游戏需要实现以下功能需求:Avn原创论文网_专业的研究生论文网站

  1. 方块形状:游戏所产生的方块总是七种不同形状的方块,在玩家通过键盘旋转之后共计有28种形状,一般采用数组储存这28种形状的数据结构。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  2. 方块显示:从七种预先设定的方块图样中随机产生,而该方块在下落过程中以及固定之后的显示图样不变;Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  3. 方块消除:方块下落堆积,当有小方块铺满一行的时候消除该行;消行的时候,该行消失,其余在该行之上的所有固定的小方块下移一格。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  4. 操控需求:Avn原创论文网_专业的研究生论文网站

  1. 键盘操控:通过设置键盘的上,下,左,右键来控制方块的下落状况。其中:上(方块旋转),下(加速下落),左(方块左移),右(方块右移)。Avn原创论文网_专业的研究生论文网站

  2. 鼠标操控:在游戏界面中有开始和设置两个按钮,玩家可以通过鼠标点击相应的按钮来实现开始和设置两个功能。Avn原创论文网_专业的研究生论文网站

  3. 游戏暂停和继续。Avn原创论文网_专业的研究生论文网站

  1. 背景变换:本游戏的背景是一张图片,根据游戏等级的增加游戏背景图片也会随之改变。Avn原创论文网_专业的研究生论文网站

  2. 计分功能:每消除一行或多行给以记分并显示;Avn原创论文网_专业的研究生论文网站

  3. 难度控制:当累计分数达到要求时会提升游戏的难度等级;Avn原创论文网_专业的研究生论文网站

  4. 游戏结束:当无法使新的方块继续下落时,游戏结束并且游戏界面中的所有小方块显示灰色以及游戏弹出保存记录的窗口,该窗口显示玩家此次游戏所得分数并让玩家输入本次游戏的名字。Avn原创论文网_专业的研究生论文网站

  5. 游戏设置:包括游戏用户设置、游戏难度、窗口尺寸设置、音效设置、游戏运行时长设置、模式设置。Avn原创论文网_专业的研究生论文网站

  6. 显示需求:主界面左上角显示图标需求,主界面弹出位置居中需求等。Avn原创论文网_专业的研究生论文网站

 Avn原创论文网_专业的研究生论文网站
2.2 系统开发环境Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
俄罗斯方块程序是利用JAVA语言进行开发。设计和开发过程中,使用了如下开发技术和环境。Avn原创论文网_专业的研究生论文网站

  1. JDK工具Avn原创论文网_专业的研究生论文网站

JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. MyEclipse开发Avn原创论文网_专业的研究生论文网站

MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
相较于之前的java 开发工具,myeclipse 拥有独立于其他开发工具的易用性,它采用组装式软件的模式来实现该工具,例如XML 文件有特定的插件对XML格式进行数据解析,HTML 和JSP 文件继承自XML 格式的编辑器,除此之外,Myeclipse 还拥有独立的工程生成器,用户只需要指定所需创建的工程类型,即可使用该功能直接创建该种类型的工程基础框架,整个工程建立过程一步到位,同时支持数十种工程类型,在对于框架的支持上,经典的SSH 框架在Myeclipse中的设计体现得尤为明显,其中包括struts 和hibernate 配置文件,先前的java开发工具所无法支持的拖拽式控件开发,所见即所得的开发模式,在Myeclipse工具也对该问题做了很大程度上的完善,实现快速敏捷开发,同时java 平台本身的跨平台特性也为该开发工具的快速应用提供了可能。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse可以支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了所有主流开源产品的专属eclipse开发工具。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
3 系统总体设计Avn原创论文网_专业的研究生论文网站
3.1游戏总体流程Avn原创论文网_专业的研究生论文网站
游戏总体处理过程见图 3-1。实现如下游戏操控流程:Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
点击控制面板内的“开始”或“控制”菜单内的“开始”按钮开始游戏。游戏开始后,使用上、下、左、右键或 I、K、J、L 键控制方块的变形、下落、向左和向右移动。方块满行消除,分数自动增加,分数每满 100 等级自动增加一级。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
游戏运行过程中,可以通过“提高等级”、“降低等级”按钮,来手动改变游戏等级。也可点击“颜色”菜单内的选项,更改前景色、背景色。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
当方块占满整个窗口或方块要超过顶部时,不能再有新方块下落时,游戏会弹出“Game Over”的对话框提示游戏结束。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
     图3-1 游戏基本流程图Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
3.2 功能架构分解Avn原创论文网_专业的研究生论文网站
游戏可分成界面显示和游戏控制两个功能模块。界面显示包括创建游戏界面、处理操作请求、操作结果显示和游戏设置功能模块。游戏设置包括等级设置、音效设置和背景设置。游戏控制包括游戏开始、暂停/继续、重新开始、退出、方块变换、方块移动等子功能模块。参见图3-2。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
 图 3-2功能架构分解图Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
3.3 实现架构Avn原创论文网_专业的研究生论文网站
Swing是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分,Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。JFrame 是 Swing 组件的顶层容器,该类继承了 AWT 的 Frame 类,支持 Swing 体系结构的高级 GUI 属性。JPanel 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
本文通过开发Swing组件以及为其注册监听器来实现各种操作功能,监听器分别有动作监听器,键盘监听器,选项监听器。具体参见图3-3。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
根据布局,可以确定所用的Swing组件对象有:Jframe,JPanel,Jlabel,Jbutton,Jmenu,JmenuItem等对象。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
图 3-3 系统实现架构图Avn原创论文网_专业的研究生论文网站
  Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
4 系统详细设计及实现Avn原创论文网_专业的研究生论文网站
4.1 概述Avn原创论文网_专业的研究生论文网站
Java 是一种纯面向对象(Object-Oriented)的程序语言,按照面向对象的设计概念对游戏进行设计。根据面向对象地三大特征:封装、继承、多态,设计中要找到对象,建立对象,使用对象,维护对象的关系。将功能封装进对象,强调了具备了功能的对象。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
类是对游戏中事物的描述。对象就是这类事物,实实在在存在的个体。描述事物就是描述事物的属性和行为。属性对应类中的变量,行为对应类中的函数(方法)。定义类是描述事物定义属性和行为。属性和行为共同成为类中的成员(成员变量和成员方法)Avn原创论文网_专业的研究生论文网站
游戏主要设计如下的类:Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
ControlMainGame 类:继承自 JFrame 类,作为游戏的主类,负责对游戏的主体全局进行控制,是各个类关联和指挥的枢纽。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
ControlPanel类:继承自JPanel类,作为操作面板类,布设主游戏窗口,积分板,级别控制按钮等窗口,控制游戏进程。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
ChangeBlockColor类:继承自 JPanel 类,动态改变画布类的方格颜色,画布类通过检查方格颜色来呈现方块的移动和消除状态。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
BlockPaint 类:方格类,是方块的基本组成元素,表达方式为颜色。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
BlockOperation 类:继承自Thread类,主要功能是操控,控制方块的移动,下落以及形状变换。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
4.2 主界面显示模块Avn原创论文网_专业的研究生论文网站
俄罗斯方块这类小游戏,良好的设计思路不仅体现在简洁精致的操作功能上,而且体现在良好的人机界面上。为玩家设计制作布局合理、视觉效果良好的界面对游戏的可玩性来说非常重要。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
游戏主界面采用Swing组件开发,并且向其注册监听器,用来各项控制功能。根据游戏窗体的设计,需要注册三个监听器:分别是动作监听器(ActionListener)、键盘监听器(KeyListener)和选项监听器(ItemListener)。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
游戏中用到的 Swing 组件对象包括 JFrame 对象、JPanel 对象,JLabel 对象、JButton 对象、JMenuBar 对象、JMenu 对象、JMenuItem 对象、JTextField 对象、JTextArea 对象、JDialog 对象等十多个 Swing 组件对象。图 4-1 为游戏界面图。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
图 4-1 游戏主界面截图Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
 4.3按钮设置Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
 图 4-2 按钮设置图Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
进入按钮设置菜单后,出现如图的界面。程序代码如下:Avn原创论文网_专业的研究生论文网站
Public  interface GameService{Avn原创论文网_专业的研究生论文网站
Public Boolean keyup();  /*方向键上*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyDown();/*方向键下*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyLeft();/*方向键左*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyRight();/*方向键右*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyFunUp(); /*三角(直接增加分数),通过直接增加分数来提升等级*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyFunDown();/*大叉,迅速下落*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyFunLeft();/*方块(控制阴影开关键)*/Avn原创论文网_专业的研究生论文网站
Public Boolean keyFunRight();/*圆圈(暂停)*/Avn原创论文网_专业的研究生论文网站
Public  void startGame();/*启动主线程,开始游戏*/Avn原创论文网_专业的研究生论文网站
Public  void mainAction(); /*游戏主要行为*/Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
 4.4 游戏方块产生和显示Avn原创论文网_专业的研究生论文网站
游戏方块的显示是游戏最基本的功能模块。本论文采用的是,通过预制小方块图片的截取,再拼合成7种规定的不同形状的方块,对其进行储存并编号从0到6,然后再通过随机数生成器Random每次产生随机形状的方块下落。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. 随机数生成器:private Random random=new Random();Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  2. 二维数组储存方块:static {Avn原创论文网_专业的研究生论文网站

 TYPE_CONFIG=new ArrayList<Point[]>(7);Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(3,0),new Point(5,0),new Point(6,0)});//长条形Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(3,0),new Point(5,0),new Point(4,1)});//T型Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(3,0),new Point(5,0),new Point(3,1)});//横7型Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(5,0),new Point(3,1),new Point(4,1)});//反Z型Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(5,0),new Point(4,1),new Point(5,1)});//正方形Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(3,0),new Point(5,0),new Point(5,1)});“¬”型Avn原创论文网_专业的研究生论文网站
TYPE_CONFIG.add(new Point[] {new Point(4,0),new Point(3,0),new Point(4,1),new Point(5,1)});Z型Avn原创论文网_专业的研究生论文网站
}    Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
图 4-3 方块产生和显示图Avn原创论文网_专业的研究生论文网站
  Avn原创论文网_专业的研究生论文网站
4.5 游戏方块移动Avn原创论文网_专业的研究生论文网站
对于方块的移动功能的实现,本论文通过改变方块原有的坐标,然后重新绘制方块。方块翻转也只需要改变背景数组的值,重新绘制方块即可。Avn原创论文网_专业的研究生论文网站
方块的移动设置编码:Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
public boolean move(int moveX,int moveY,boolean[][] gameMap) {Avn原创论文网_专业的研究生论文网站
for(int i = 0 ;i<actPoints.length;i++)   {Avn原创论文网_专业的研究生论文网站
int newX=actPoints[i].x+moveX;Avn原创论文网_专业的研究生论文网站
int newY=actPoints[i].y+moveY;Avn原创论文网_专业的研究生论文网站
if(this.isOverZone(newX,newY,gameMap)) {Avn原创论文网_专业的研究生论文网站
return false;Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
for (int i = 0; i < actPoints.length; i++){Avn原创论文网_专业的研究生论文网站
actPoints[i].x+=moveX;Avn原创论文网_专业的研究生论文网站
actPoints[i].y+=moveY;Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
return true;Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
在设计时需要判定方块移动的边界问题。当方块因为翻转而超出界面时,需要将翻转后的方块进行平移,然后绘制方块,同时要避免出现翻转平移后的方块和其它方块的重叠问题。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
方块的移动分为方块的自动下落以及通过按键事件实现方块的左移、右移以及加速下移。通过多线程 ShapeDriver 类实现方块的自动下移,考虑到游戏里方块的动态性,每个方块有一定的生命周期,可以使用线程来实现方块。一个方块用一个线程类对象表示,该类继承自Thread 父类。当一个方块出现时就表示一个线程对象产生并开始运行。基于对按键事件的响应,完成图形的左移、右移以及加速下移。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
4.6 方块旋转Avn原创论文网_专业的研究生论文网站
对于方块旋转功能的实现,本文采用的是对7种预制方块除了正方形方块之外,均对其规定一个中心点,再利用笛卡尔旋转公式的算法对方块进行旋转,其中正方形方块跳过旋转操作。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
方块的旋转设置编码:Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
public void round(boolean[][] gameMap) {Avn原创论文网_专业的研究生论文网站
if(this.typeCode==4) {Avn原创论文网_专业的研究生论文网站
return;Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
for (int i = 1; i < actPoints.length; i++) {Avn原创论文网_专业的研究生论文网站
int newX=actPoints[0].y+actPoints[0].x-actPoints[i].y;Avn原创论文网_专业的研究生论文网站
int newY=actPoints[0].y-actPoints[0].x+actPoints[i].x;Avn原创论文网_专业的研究生论文网站
if(this.isOverZone(newX,newY,gameMap)) {Avn原创论文网_专业的研究生论文网站
return;Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
for (int i = 1; i < actPoints.length; i++) {Avn原创论文网_专业的研究生论文网站
int newX=actPoints[0].y+actPoints[0].x-actPoints[i].y;Avn原创论文网_专业的研究生论文网站
int newY=actPoints[0].y-actPoints[0].x+actPoints[i].x;Avn原创论文网_专业的研究生论文网站
actPoints[i].x=newX;Avn原创论文网_专业的研究生论文网站
actPoints[i].y=newY;Avn原创论文网_专业的研究生论文网站
  }Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
  Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
图 4-4 方块旋转原理图Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
而对于方块是否超出边界或堆砌设置,采用的是将方块的每个小方块的坐标进行判定是否超出边界或与其他方块重叠,若超出边界,则不执行移动和旋转操作。见图4-5。Avn原创论文网_专业的研究生论文网站
判定方法的编码:Avn原创论文网_专业的研究生论文网站
private boolean isOverZone(int x,int y,boolean[][] gameMap) {Avn原创论文网_专业的研究生论文网站
return x<MIN_X || x>MAX_X || y<MIN_Y || y>MAX_Y || gameMap[x][y];Avn原创论文网_专业的研究生论文网站
}Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
4-5 方块翻转处理流程图(略)Avn原创论文网_专业的研究生论文网站
  Avn原创论文网_专业的研究生论文网站
4.4 控制面板Avn原创论文网_专业的研究生论文网站
游戏通过键盘控制方块的移动和旋转,通过按钮控制游戏的开始和设置。Avn原创论文网_专业的研究生论文网站
按钮控制:包括得分统计、等级统计、最高分记录统计等字段,其中的 TextField 控件是游戏本身统计给出,用户无法编辑。游戏规则是每消一行得10分,每增加100分上升一个等级。初始得分为 0,初始等级为 1,“最高分记录”是记录当前游戏的最高分。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
5 系统的调试运行Avn原创论文网_专业的研究生论文网站
5.1 概述Avn原创论文网_专业的研究生论文网站
软件测试是软件开发中非常重要的一环,是软件质量的重要保障。测试方法和测试用例设计的优劣会直接影响到软件功能、性能、效率和稳定性。因此,必须要设计良好的测试用例和实现良好的测试方法。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
软件应从多角度进行测试和分析,并且黑盒测试人员选择和软件开发和设计人员无关的人员。因软件开发人员容易形成思维定势,在测试的时候不可避免地会受到这种思想的束缚,容易遗漏和规避程序错误。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
在软件测试过程中应该注意如下几点:Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
1>语法错误Avn原创论文网_专业的研究生论文网站
语法错误是经常碰到的错误,语法错误可能导致不能继续编写代码。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
2>逻辑错误Avn原创论文网_专业的研究生论文网站
逻辑错误一般可能是潜在和难以检测的。如果出现键入错误或流程问题引起的逻辑错误,可能会成功运行,但会产生错误的结果。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
3>运行时错误Avn原创论文网_专业的研究生论文网站
运行时错误是在执行过程中指令试图执行不可能的动作而导致的,这种错误必须及时纠正,否则可能会出现游戏的不可靠运行。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
论文在开发和测试过程中采用了多种以保证软件质量,对软件容易出现的异常如边界处旋转、方块翻转越界等进行了重点测试,降低了软件出错概率。尽管经过了较为充分的测试,但系统中难免存在一些其它缺陷。所以,游戏测试还要从多个角度,方法论,时间和空间维度考虑,全面测试尽量减少软件bug。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
5.2 代码测试Avn原创论文网_专业的研究生论文网站
经过对软件代码的走读和执行白盒测试,发现一些问题并及时解决:Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. 写 get()方法时要求有返回值,但是程序遗漏了 return 语句,导致程序在编译时出现错误。解决方法是,在方法中加入return 语句,返回相应的内容即可。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  2. 使用随机函数产生方块时,遗漏了传入参数给方块,编译不能通过。针对各个方块传递对应的参数,问题解决。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  3. 运行程序时,统计的分数经常会被覆盖,而没有累计。检查发现,原因是程序笔误,score变量只做了赋值而没有累加导致,修改后解决了该问题。Avn原创论文网_专业的研究生论文网站
     Avn原创论文网_专业的研究生论文网站

  4. 在如何检测及消除、越界处理上、升级判断等,还存在一些算法和流程的错误。经过讨论请教以及查阅资料,问题都最终解决。Avn原创论文网_专业的研究生论文网站

 Avn原创论文网_专业的研究生论文网站
5.3 游戏功能测试Avn原创论文网_专业的研究生论文网站
5.3.1 方块操控测试Avn原创论文网_专业的研究生论文网站

  1. 方块移动测试Avn原创论文网_专业的研究生论文网站

操作:游戏过程中,点击“下、左、右”结果:方块正常移动,不会移出边界Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. 方块旋转测试Avn原创论文网_专业的研究生论文网站

操作:游戏过程中,点击向上方向键Avn原创论文网_专业的研究生论文网站


结果:方块无边界和障碍物阻挡时可反转Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
5.3.2 菜单操作测试Avn原创论文网_专业的研究生论文网站

  1. “游戏”菜单测试Avn原创论文网_专业的研究生论文网站

  1. 操作:点击“开始”Avn原创论文网_专业的研究生论文网站

结果:开始游戏,方块开始下落Avn原创论文网_专业的研究生论文网站

  1. 操作:点击“结束”Avn原创论文网_专业的研究生论文网站

结果:游戏结束正常Avn原创论文网_专业的研究生论文网站

  1. 操作:点击“游戏”à “提高等级”Avn原创论文网_专业的研究生论文网站

结果:等级提高正常Avn原创论文网_专业的研究生论文网站

  1. 操作:点击“游戏”à “降低等级”Avn原创论文网_专业的研究生论文网站

结果:等级降低正常Avn原创论文网_专业的研究生论文网站

  1. 操作:点击 “暂停”Avn原创论文网_专业的研究生论文网站

结果:暂停游戏,方块停止下落结果Avn原创论文网_专业的研究生论文网站

  1. 操作:点击 “重新开始”Avn原创论文网_专业的研究生论文网站

结果:重新开始新游戏Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站

  1. 点击“背景”菜单测试Avn原创论文网_专业的研究生论文网站

  1. 操作:点击“设置”à “背景”Avn原创论文网_专业的研究生论文网站

结果:更换背景正常 Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
       5-1 游戏设置界面测试Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
5.3.3方块堆积与消除测试Avn原创论文网_专业的研究生论文网站

  1. 方块堆砌测试Avn原创论文网_专业的研究生论文网站

输入:方块下落到最底面或与障碍物接触Avn原创论文网_专业的研究生论文网站
结果:方块成功堆砌在底部Avn原创论文网_专业的研究生论文网站

  1. 游戏消行测试Avn原创论文网_专业的研究生论文网站

输入:出现满行现象Avn原创论文网_专业的研究生论文网站
结果:所有满行被消除,方块依次下移Avn原创论文网_专业的研究生论文网站

  1. 游戏结束测试Avn原创论文网_专业的研究生论文网站

输入:出现满屏现象Avn原创论文网_专业的研究生论文网站
结果:弹出会话窗口,提示“Game Over”。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
5-2 方块下落消除测试Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
5.4测试结果分析Avn原创论文网_专业的研究生论文网站
通过上述对游戏各项功能的测试,可以判断游戏的各项功能能够正常实现。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
因为游戏是需要广泛分发给大众游玩,因此真正一个运行良好游玩体验佳的游戏,还需要发布测试版本给大众进行测试,收集反馈意见进行完善和修改。另外,游戏需要长时间运行,因此需要对游戏的操控做长时间的点击和拷机测试,进一步测试程序运行的稳定性。这都需要在以后的开发测试工作中加以完善。Avn原创论文网_专业的研究生论文网站
  Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
6 总结与展望Avn原创论文网_专业的研究生论文网站
通过这次毕业设计,我成了俄罗斯方块游戏的设计和修改任务。在整个开发过程中遇到了很多问题,如方块的绘制和变形、线程的创建问题、同步的控制、满行判断、消行的处理以及最高分数记录的功能实现等各种问题,但最终得到解决。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
在解决问题的过程中,思考和查阅了大量资料进行分析,并从各大游戏下载网站下载单机版俄罗斯方块游戏,并研究其中功能的实现和界面的设计,经过逐步的设计与反复的修改论证,才完成了整个游戏的开发和解决各种设计开发和测试问题。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
整个设计的过程,采取了自上到下的瀑布模型,从总体入手,分解功能需求,设计功能模块,从总体设计到详细设计,再到功能和系统测试。最后根据测试问题,对设计和开发进行修改和优化。通过这些工作,初步熟悉了软件开发工作流程。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
通过毕业设计的创作,我对 Java 这种开发语言有了更深一步的了解,锻炼和提高了我的编程能力,也将对我以后的就业打下良好的基础。Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
游戏设计不但程序算法和逻辑实现很重要,良好美观易用的游戏界面也往往起到决定性作用。一个优秀的游戏软件设计是一项系统工作,需要编程、美工、音效、动作和情节等方方面面的细致工作,而我所做的工作仅仅完成其中的一小部分,因此要学习的内容还有很多很多。我将会继续努力学习和实践,提升自己的综合水平和能力。Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
7 参考文献Avn原创论文网_专业的研究生论文网站
 Avn原创论文网_专业的研究生论文网站
[1].俄罗斯方块有助预防创伤后应激障碍[J].发明与创新(大科技),2017(05):56.Avn原创论文网_专业的研究生论文网站
[2]任天.玩俄罗斯方块能缓解心理创伤吗[J].方圆,2017(08):60-61.Avn原创论文网_专业的研究生论文网站
[3]高成珍.基于Java的俄罗斯方块游戏的设计与实现[J].科技经济市场,2017(02):24-25.Avn原创论文网_专业的研究生论文网站
[4]兰琼.俄罗斯方块的迷人之处[J].现代班组,2016(07):52-53.Avn原创论文网_专业的研究生论文网站
[5]康向荣.《Java程序设计》教学方法探究[J].电子测试,2014(06):156-157.Avn原创论文网_专业的研究生论文网站
[6]曾庆维,冯镍.一种基于玩家水平的俄罗斯方块游戏[J].软件导刊,2014,13(01):26-28.Avn原创论文网_专业的研究生论文网站
[7]王西艳.俄罗斯方块游戏的设计与实现[J].办公自动化,2013(20):63-64+45.Avn原创论文网_专业的研究生论文网站
[8]杨桦,周春容.俄罗斯方块游戏中关键算法的分析与实现[J].电脑编程技巧与维护,2013(12):10-12.Avn原创论文网_专业的研究生论文网站
[9]汪红霞.俄罗斯方块设计[J].计算机光盘软件与应用,2012,15(21):187-188.Avn原创论文网_专业的研究生论文网站
[10]徐寅哲.基于JAVA的俄罗斯方块游戏开发[J].资治文摘(管理版),2009(05):192+199.Avn原创论文网_专业的研究生论文网站
[11]邱菊,唐凯军,徐立希,牛小梅.基于枚举算法设计“俄罗斯方块”游戏[J].电脑知识与技术,2009,5(14):3710-3712.Avn原创论文网_专业的研究生论文网站
[12]王国东.陈天桥的“俄罗斯方块”[J].现代计算机(普及版),2008(06):107.Avn原创论文网_专业的研究生论文网站
[13]赵福生.L形方块完全覆盖俄罗斯方块图形的条件[J].电脑知识与技术,2008(12):571.Avn原创论文网_专业的研究生论文网站
[14]高凌琴,陈青华.俄罗斯方块游戏关键技术探讨[J].信息技术与信息化,2008(02):69-71.Avn原创论文网_专业的研究生论文网站
[15]胡爱民.“俄罗斯方块”中方块的旋转问题[J].数学教学,2006(09):12-13+50.Avn原创论文网_专业的研究生论文网站
[16]黄复贤.俄罗斯方块游戏的敏捷设计与开发[J].电脑编程技巧与维护,2005(04):74-77.Avn原创论文网_专业的研究生论文网站
[17]孤山青竹.游戏中的人生哲学[J].软件工程师,2005(Z1):118.Avn原创论文网_专业的研究生论文网站
[18]万玉,王战戈,孙镛.游戏编程中的变换算法[J].曲阜师范大学学报(自然科学版),2004(03):35-38.Avn原创论文网_专业的研究生论文网站
[19]钟再敏 ,钟其水 ,朱华.“俄罗斯方块”自己编[J].多媒体世界,2000(04):110-111.Avn原创论文网_专业的研究生论文网站
[20]赵东跃.俄罗斯方块编程[J].电脑编程技巧与维护,1998(06):16-20+22.Avn原创论文网_专业的研究生论文网站
[21].新俄罗斯方块[J].中文信息,1995(03):11.Avn原创论文网_专业的研究生论文网站

上一篇:供应链管理系统的设计与实现
下一篇:基于强化学习的迷宫寻宝游戏设计与实现

| 论文推荐

更多 更多论文
在线客服系统