俄罗斯方块论文最终版Word格式.docx
- 文档编号:6289552
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:57
- 大小:1.38MB
俄罗斯方块论文最终版Word格式.docx
《俄罗斯方块论文最终版Word格式.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块论文最终版Word格式.docx(57页珍藏版)》请在冰点文库上搜索。
Tetris;
Single-playergame;
Double-playersgames;
GraphicalUserInterface
目录
1绪论1
1.1选题背景及意义1
1.2选题目的1
1.3研究内容1
1.3.1JavaGUI编程1
1.3.2Java多线程机制3
1.3.3Java与网络通信4
2可行性研究6
2.1引言6
2.2技术可行性6
2.3经济可行性6
2.4操作可行性6
2.5法律可行性7
2.6结论7
3需求分析8
3.1引言8
3.2开发意图8
3.3游戏功能分析8
3.3.1项目目标8
3.3.2系统概述8
3.3.3系统运行环境9
3.3.4系统功能需求9
3.4游戏的UML基本模型10
3.4.1游戏的用例图10
3.4.2游戏的包图12
3.4.3游戏的状态图13
3.4.4游戏的活动图15
3.4.5游戏的时序图16
4总体设计20
4.1总体设计概述20
4.2总体设计思想20
4.3系统的类图21
4.3.1俄罗斯方格类的类图21
4.3.2单机版俄罗斯方块游戏的类图22
4.3.3双人对战版俄罗斯方块游戏的类图23
4.4游戏的组件图24
4.5游戏的配置图24
4.6面向连接的Socket的通信机制25
4.7数据库设计25
4.7.1本游戏采用的数据库25
4.7.2本游戏涉及的数据表26
4.8游戏的总体流程图26
5详细设计与实现28
5.1详细设计概述28
5.2游戏主界面设计与实现28
5.3俄罗斯方格类的设计与实现30
5.4游戏块的设计与实现31
5.5游戏控制的设计与实现33
5.6单机版俄罗斯方块游戏的设计与实现33
5.6.1单机版游戏的设计方法33
5.6.2单机版游戏菜单的设计与实现34
5.6.3单机版游戏控制面板的设计37
5.6.4单机版游戏画布类的设计与实现37
5.6.5单机版游戏主类的设计与实现37
5.6.6单机版游戏模块流程图38
5.7双人对战俄罗斯方块游戏的设计与实现38
5.7.1双人对战版游戏的设计方法38
5.7.2Socket数据传输39
5.7.3双人对战版游戏主类的实现39
5.7.4双人对战版俄罗斯方块类的实现40
5.7.5双人对战版游戏画布类的实现40
5.7.6双人对战版游戏菜单类的实现40
5.7.7双人对战版游戏对象数据传输类的实现43
5.7.8双人对战版游戏运行效果的实现43
结论44
致谢45
参考文献46
1绪论
1.1选题背景及意义
游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。
伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。
因此发展我国自主的益智休闲的游戏软件已是当务之急。
游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。
当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。
俄罗斯方块作为最经典的益智休闲游戏之一,截至2009年已经发售了1.25亿份,受到50多个国家和地区的玩家喜爱,有超过50种语言的版本,运行在几十种游戏平台上,从掌机、街机、个人电脑,到手机和PDA。
本游戏根据软件工程有关的规范,以合理的开发原则,设计出综合了单机版和双人对战版两种模式的俄罗斯方块游戏,给人们的生活带来唯美的艺术享受和健康愉快的补充。
1.2选题目的
改善现存俄罗斯方块游戏的单一模式,开发出一个可操作性、美观性、及时性的俄罗斯方块游戏。
本游戏综合了单机版和双人对战版两种模式,用户可任选一种进行游戏。
方便简单又快捷,是娱乐休闲的好方法。
游戏中提供了漂亮美观的界面和动听的音乐,使得游戏的视觉表现与用户界面及背景音乐,融合为有机的整体,给人们带来更为丰富的娱乐和体验,同时也给玩家带来无限激情。
在当前的游戏开发领域中,Java有自己的独到之处,用Java编写的代码简单明了、可移植性强,所以本游戏的开发采用面向对象的设计方法,采用开源开发环境Eclipse,界面利用JavaSwing提供的图形类实现,游戏块的运行采用多线程(Thread)机制。
1.3研究内容
本游戏包括两种游戏模式:
单机版和双人对战版。
在整个游戏的开发过程中涉及到Java基本知识的大部分内容,如事件、线程、动画、双缓冲图像、图形界面、Socket数据传输等方面的知识。
主要内容如下:
1.3.1JavaGUI编程
利用Java实现的俄罗斯方块几乎能用到JavaGUI的所有方面,其中包括Sun公司为Java提供的两个图形界面类库:
1AWT:
其中提供了建立和设置Java的图形用户界面的基本工具。
AWT由Java中的
java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类被称为构件(Components)[1]。
②Swing:
是JavaFoundationClasses(JFC)的一部分,与ATW的重量级构件不同,Swing中大部分是轻量级构件。
正是这个原因,Swing几乎无所不能,不但有各式各样先进的构件,而且更为美观易用。
在本俄罗斯方块游戏的实现中,主要采用Swing类库。
(1)基本窗口类
图形用户界面的程序效果类似于Windows系统下运行的程序。
在俄罗斯方块游戏中用到JFrame、JWindow、JPanel和JDialog等几种窗口类。
(2)原子构件:
俄罗斯方块游戏中用到的原子构件很多,如:
JLabel、JButton、JColorChooser、JTextField、JTextArea等,这些构件的用法比较简单。
(3)菜单类:
对一个大的GUI程序而言通常包括各种菜单,俄罗斯方块游戏中也包含多种菜单,如:
JMenu、JMenuItem、JMenuBar等,Java为这些菜单构件提供了相应的类。
(4)事件处理:
大多数的Java程序通过GUI构件(例如按钮、窗口、菜单等)与用户进行交互,俄罗斯方块游戏也是如此。
俄罗斯方块游戏与用户最重要的交互活动时用户通过键盘来控制游戏、通过按钮和菜单来设置游戏。
前者在Java中表现为键盘事件,后者表现为动作事件。
在Java中事件由分层的事件类表示,而接口则描述了对特定事件的响应方法。
想要处理这些事件的类就必须实现一个或多个接口以及这些接口中的方法。
(5)布局管理:
Java语言中,提供了布局管理器这个工具来管理组件在容器中的布局[2]。
布局管理器按照布局说明选择构件的最佳位置,保证布局的总体外观在不同的操作系统下与Java程序的描述保持一致。
一个布局管理器确定各构件在显示区域的次序、相对大小和相对位置。
布局管理器在AWT中定义为接口,Java提供了若干类来实现它,其中最基本的类有:
FlowLayout、GirdLayout、BorderLayout。
(6)图形类与图形的绘制:
使用Graphics类提供的绘图方法“publicvoidpaint(Graphicsg)”可以画出线条、矩形、圆形等图形。
由于Frame类继承与Component类,所以可以通过覆盖所继承的paint方法来进行绘图。
还有一种很流行的绘图方法,即创建一个单独的类,这个类继承于Canvas类并且覆盖paint方法。
俄罗斯方块游戏采用的是继承于Canvas类的方式。
①Graphics类
Graphics类用于在一个可视构件内绘图。
一个Graphics对象包含了绘图所必需包含的信息,其中包括坐标、色彩、字体和剪贴板区。
绘图在一个二维整数坐标系中进行,该坐标的原点在构件的左上角。
X轴在水平方向上从左至右增长,Y轴在垂直方向上从上至下增长。
使用Graphics,都可在需要更新时自动调用repaint方法。
repaint方法也可以直接在绘图程序中调用。
在repaint中需要调用update方法,update方法在清除屏幕后再调用paint方法。
paint方法也可以被实际应用需要的绘图代码进行覆盖。
1.3.2Java多线程机制
俄罗斯方块的实现充分利用了Java的线程功能。
在游戏过程中需要对玩家的控制进行实时处理。
由于游戏中方块的动态性,每个方块都有一定的生命周期,所以选用线程来实现方块。
一个方块用一个线程对象实现,该类继承于Thread类,当一个方块出现时也就表示一个线程产生并开始运行。
通过对键盘消息的响应,实现移动、下落、变形等操作。
利用多线程可以使整个游戏的结构更加松散耦合,使资源更加平衡,使用户的操作更加方便。
2可行性研究
2.1引言
系统开发的总体任务是实现游戏的可操作性、美观性、及时性。
本游戏开发过程遵循软件工程规范,采用结构化和面向对象分析设计方法。
主要实现windows的GUI程序开发,对游戏中的图形图像进行键盘控制。
游戏者可以通过上下左右键及空格键来对游戏进行操作。
下面从技术、经济、操作、法律三个方面分析本系统的可行性:
2.2技术可行性
可用于本游戏的编程语言有Java、VC++、C#.NET等,考虑到编写程序的难易程度,和对语言的了解程度以及各种编程语言自身的特点,选择乐Java作为编程语言进行开发。
首先,作为一种程序设计语言,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。
它不依赖于机器的结构,并且提供了并发的机制、具有很高的性能。
其次,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受CPU和环境的限制。
另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。
同时还利用了MySQL数据库系统作为其后台数据库,实现排行榜的存储和查询,确保了该系统中数据处理的高效性、快速性和安全性。
2.3经济可行性
本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。
从开发人力、物力、时间上考虑,开发成本少。
而且利用了开源开发环境myEclipse6.0,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。
由于需求分析完整,减少了很多后期维护的复杂性。
另外,本系统具有很实用的现实意义。
因此,从经济角度考虑在线考试系统的开发在经济上是完全可行的。
2.4操作可行性
本游戏是采用java的GUI(图形用户界面)组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。
强调人—机—环境三者作为一个系统进行总体设计。
对所有数据的输入进行完整性和合法性检查,尽量减少误操作。
因此在操作上是可行的。
2.5法律可行性
本游戏的开发作为毕业课程设计以提高分析和解决实际问题的能力,以个人为单位,仅供个人平常娱乐所用,所用他人的成果部分都已注明。
所以不存在侵权的问题。
该软件是合法的,不会引起任何社会问题。
因此,从法律上考虑本系统是可行的。
2.6结论
综上所述,本游戏在技术方面、经济方面、操作方面、法律方面均是可行的,由此得出结论:
本游戏软件的技术成熟、完备。
各方面均无重大问题,因此本游戏软件可开始着手编写。
3需求分析
3.1引言
需求分析是软件定义时期的最后一个阶段,也是关系到软件开发成败的关键步骤。
它的基本任务是准确回答“系统必须做什么?
”这个问题[2]。
即确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求[3]。
在这个阶段中,开发者要做大量的调查和研究,收集信息,明确系统功能。
需求分析的结果是系统开发的基础,它的成功与否直接关系到项目的成败和软件的质量。
对软件需求的理解程度是决定软件开发工作成功与否的至关重要的环节,需求分析的任务是发现、规范的过程,有益于提高软件开发过程中的能见度;
便于对软件开发过程进行控制与管理;
便于采用工程方法开发软件,提高软件的质量;
便于开发人员、维护人员、管理人员之间的交流、协作。
3.2开发意图
竭力为广大俄罗斯方块游戏爱好者提供一款趣味性强、容易学、上手快的益智休闲类游戏,来丰富大家的业余生活。
3.3游戏功能分析
3.3.1项目目标
项目实现了俄罗斯方块游戏的所有基本功能,同时,为了满足玩家的个人需求,在游戏中加入了背景音乐和音效等效果,从而使游戏从感官上更加吸引玩家;
在单机版中设置了当游戏窗口最小化时,游戏能够自动暂停,窗口恢复时游戏自动继续的功能以方便玩家的游戏操作;
在双人对战版中加入了玩家自主设置键盘的操作,从而使操作更加简单,更容易上手,且不易失误。
力争使游戏具有可靠性,安全性,完整性,灵活性,开发出一款更加适合人们需求的俄罗斯方块游戏。
3.3.2系统概述
屏幕上有一个X列Y层的区域,计算机自动产生7种不同形状的方块,并出现在区域的最顶端,然后每过一个固定的时间向下落移动一格。
玩家可用上、下、左、右及空格键来控制方块的旋转和移动,以便按照玩家所需要的形态和位置落下,不过前提是方块移动和旋转后的位置必须是空的。
这7种方块可以旋转90°
、180°
、270°
,因此每种方块有4种状态,7种方块总共有28种状态。
另外,在游戏区域产生一个新的方块的一瞬间,立即产生下一个下落方块的形状并在提示区域的左上方有预先提示。
同时,在游戏界面的右下方,将显示玩家所得的分数以及游戏的难度级别。
每当游戏玩家成功消除一行方块时,将按照一定的算法计算出所得分数,并修改游戏状态区域的分数和行数的数值。
本游戏提供了十个游戏级别,用户可根据自己的兴趣选择相应的级别。
下落方块可以通过旋转改变其显示形状,并且不断地往下落,直到它接触到游戏区域底部或者其他已经垒叠起来的下落方块。
当一个下落方块到达游戏区域底部或者接触到其他已经垒叠起的下落方块后,其位置即确定下来,并占有该空间的位置区域。
如果落下时,方块的方格能填满某一行,则这一行可消去。
消去一行后,游戏可给玩家加分,垒在其上的方块将按照一定的算法落下来代替该行空间。
游戏的结束是以下落方块的顶部到达游戏区域顶部作为判断依据,若由存在空格的方块填满整个窗口,则游戏失败。
系统默认设置使用右边的窗口,用光标操作:
“←”左移一格;
“→”右移一格;
“↑”变形;
“↓”下移一格;
“空格”丢下方块。
双人对战版中玩家还可以定义自己的习惯的按键来操作游戏。
3.3.3系统运行环境
硬件环境:
内存:
512M,硬盘:
256M,cpu:
1.8HZ以上
软件环境:
MyEclipse6.0.1,JDK1.5和MySQL数据库。
3.3.4系统功能需求
1.游戏主界面功能需求
良好的用户界面,能够在视觉上吸引玩家。
为了使界面简洁美观,需要在主界面中添加背景图片来渲染游戏的气氛,同时为了便于玩家的操作,需要设置四个按钮供玩家选择,分别是“单机版”、“双人对战版”、“帮助”、“退出”。
这样的设置让用户一目了然。
另外,为了能够实时的显示游戏的进度,还需在主界面下方添加进度条,用动态感来吸引玩家。
2.单机版游戏功能需求
为了满足广大玩家的需要,本游戏特别设置了单机版游戏,这项功能可以让玩家在短期能提高游戏水平,以便更快地适应双人对战版游戏。
单机版游戏的界面采用JFrame界面来进行设计。
使游戏界面更加美观大方。
该界面由4个模块构成,分别是菜单条、菜单项、控制面板和游戏画布。
其中菜单条包括游戏、控制、窗口风格、音乐控制、帮助四个菜单。
控制面板包括预提示面板,当前信息提示面板、游戏控制按钮面板和背景音乐控制按钮面板。
在单机版游戏中,玩家可以根据自己的需要设置游戏级别。
另外,为了满足玩家的听觉需求,还增加了自动播放背景音乐的功能、更换背景音乐的功能、暂停背景音乐的功能以及音效效果。
为了满足玩家的心理需求,还添加了排行榜的功能,方便玩家及时记录自己游戏战绩。
为了进一步方便玩家的实际操作,还为部分操作添加了快捷键的功能,用户无需点击按钮或菜单项即可达到游戏目的。
3.双人对战版游戏模块功能需求
为了增强玩家对本游戏的兴趣,还特别设计了双人对战版游戏。
双人对战版具有单机版游戏的基本功能。
除此之外,还能实时地显示对方玩家的游戏状态。
这样可以根据对方的状态,及时改变自己的游戏策略。
本功能改变了以往双人版只能在同一台机器上运行的模式。
实现了网络双人对战,可以用一台机器作为服务器运行,另一台机器作为客户端运行,也可以在同一台机器上运行。
对战双方的数据无需通过其他服务器处理,因此实现的是点对点的通信。
4.俄罗斯方块的需求
良好的方块形状设计,绘制七种常见的基本图形,各个方块要能实现旋转变形、移动和显示。
方块的旋转可设为顺时针或逆时针,本游戏采用逆时针变形。
5.键盘处理事件的需求
方块下落时,可通过键盘方向键(上、下、左、右、空格键)对该方块进行向上(旋转变形),向下移动、向左移动、向右移动和丢下操作。
双人对战版玩家还可以根据自己的需要设置键盘的操作。
6.显示需求
当方块填满一行时可以消行,剩余方块向下按照一定的算法向下移动并统计分数。
当达到一定的分数时游戏升级,并显示游戏升级信息;
当游戏方块填满整个屏幕时,游戏结束,并显示游戏结束信息。
本游戏共设置十个级别,方块的下落速度随着级别的升高而加快。
3.4游戏的UML基本模型
3.4.1游戏的用例图
用例图是由软件需求分析到最终实现的第一步,它描述人们希望如何使用一个系统。
用例图在需求分析阶段有很重要的作用,它是作为参与者的外部用户所能观察到的系统功能的模型图,它显示多个外部参与者以及他们与系统提供的用例之间的连接[4]。
整个开发过程都是围绕需求阶
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 俄罗斯方块 论文 最终版