-基于java的俄罗斯方块的设计与实现sc.docx
《-基于java的俄罗斯方块的设计与实现sc.docx》由会员分享,可在线阅读,更多相关《-基于java的俄罗斯方块的设计与实现sc.docx(31页珍藏版)》请在咨信网上搜索。
1、摘要随着社会日新月异的变化和互联网的飞速发展,计算机已经普及到人们的日常生活中,网络也成为人们生活中的重要组成部分。好的游戏能够给人们的生活带来健康愉快的补充,唯美的艺术享受,一定的教育功效。俄罗斯方块游戏作为一款风靡全球的最经典的益智休闲游戏之一,已经成为老幼皆宜的小游戏.对一般用户来说,它的规则简单,容易上手,但游戏过程却变化无穷。本游戏的设计综合了单机版与双人对战版两种模式,用户可任选一种进行游戏。与通常俄罗斯方块游戏的不同之处在于:在消除满行方块时,方块的颜色会发生变化,以此来提示用户.另外,本游戏还增加了背景音乐和音效的播放功能.单机版中增加了排行榜的功能,游戏结束时,用户可通过对话
2、框输入自己的姓名并存储到排行榜数据表中,如果进入前50名,即可在排行榜上看到自己的游戏记录。双人对战版,实现了人和人之间的对战,提高了游戏的互动性和娱乐性.既能使用户享受到游戏中的乐趣,又能为用户提供一个展现高超技艺的场所。本游戏是采用java的GUI ( 图形用户界面) 组件创建的,强调人机环境三者作为一个系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。关键词 俄罗斯方块;单机版;双人对战版;图形用户界面AbstractWith the rapid change of society and the development of Internet, the
3、computer has already been run through in ours daily life, and the network also becomes one important part of peoples life。 The good game could bring the supplement with health and happy, exquisite enjoy of art, certain efficiency of education to peoples life。 Tetris, as one of the most classical gam
4、es, which is illuminating and relaxing, is populared with all over the world, has became a little game that is suit both the young and the old。 To general users, its rule is simple, easy to grasp, but the process of the game is changing infinitely。 The design of this game includes two kinds of modes
5、, both single player games and double battles version, users can choose any of the game。 The difference with common Tetris lies in: While eliminating the fully squares, the color of the square will change, so as to hint users。 In addition, the broadcast function of the background music and sound are
6、 added in this game。 The function of billboard also added into the single - player games, while game is over, users can input their own names through dialog box and store their scores in the table of billboard, if one enters the top of 50, he could see his own record of the game on the billboard。 Th
7、e function of interpersonal fighting is implemented in double battles version, which improves the interactional and recreational of the game。 This game can not only makes user to enjoy fun in the game, but also can offer a place to represent superb skill to user. The component of GUI (Graphical User
8、 Interface) of Java is adopted in this game, it takes people the machine environmental as a system so as to design, that makes the operation of the system more humaniztion, the cognizant of burden of the users is lightened。And this of course makes it even more suitable for the demand of users。KEY WO
9、RD Tetris; Single-player game; Double-players games; Graphical User Interface目录第一章绪 言1第一节 选题背景及意义1第二节 选题目的1第三节 研究内容1第二章 可行性研究2第一节引言2第二节 技术可行性2第三节 经济可行性2第四节 操作可行性2第五节 法律可行性2第六节 结论2第三章 需求分析2第一节 引言2第二节 开发意图2第三节 游戏功能分析2第四节 游戏的UML基本模型2第四章 总体设计2第一节 总体设计概述2第二节 总体设计思想2第三节 系统的类图2第四节 游戏的组件图2第五节 游戏的配置图2第六节 面向连
10、接的Socket的通信机制2第七节 数据库设计2第八节 游戏的总体流程图2第五章 详细设计与实现2第一节详细设计概述2第二节 游戏主界面设计与实现2第三节 俄罗斯方格类的设计与实现2第四节 游戏块的设计与实现2第五节 游戏控制的设计与实现2第六节 单机版俄罗斯方块游戏的设计与实现2第七节 双人对战俄罗斯方块游戏的设计与实现2结束语2谢辞2参考文献2电子科技大学毕业论文(设计) 基于java的俄罗斯方块的设计与实现第一章 绪 言第一节 选题背景及意义游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。伴随着游戏软件在市场上的销售,与其相关的文化也随之传播.因此发展我国自主的
11、益智休闲的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式.当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。俄罗斯方块作为最经典的益智休闲游戏之一,截至2009年已经发售了1.25亿份,受到50多个国家和地区的玩家喜爱,有超过50种语言的版本,运行在几十种游戏平台上,从掌机、街机、个人电脑,到手机和PDA。本游戏根据软件工程有关的规范,以合理的开发原则,设计出综合了单机版和双人对战版两种模式的俄罗斯方块游戏,给人们的生活带来唯美的艺术享受和健康愉快的补充.第二节 选题目的改善现存俄罗斯方块游戏的单一模式,开发出一个可操作性、美观性、及时性的俄罗斯方块游
12、戏。本游戏综合了单机版和双人对战版两种模式,用户可任选一种进行游戏。方便简单又快捷,是娱乐休闲的好方法。游戏中提供了漂亮美观的界面和动听的音乐,使得游戏的视觉表现与用户界面及背景音乐,融合为有机的整体,给人们带来更为丰富的娱乐和体验,同时也给玩家带来无限激情.在当前的游戏开发领域中,Java 有自己的独到之处,用Java编写的代码简单明了、可移植性强,所以本游戏的开发采用面向对象的设计方法,采用开源开发环境MyMyEclipse8。5,界面利用Java Swing提供的图形类实现,游戏块的运行采用多线程(Thread)机制。第三节 研究内容本游戏包括两种游戏模式:单机版和双人对战版。在整个游戏
13、的开发过程中涉及到Java基本知识的大部分内容,如事件、线程、动画、双缓冲图像、图形界面、Socket数据传输等方面的知识。主要内容如下:一、 Java GUI 编程利用Java 实现的俄罗斯方块几乎能用到Java GUI 的所有方面,其中包括Sun 公司为Java 提供的两个图形界面类库:AWT:其中提供了建立和设置Java的图形用户界面的基本工具。AWT 由Java中的java。awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类被称为构件(Components)1。Swing:是Java Foundation Classes(JFC)的一部分,与ATW 的
14、重量级构件不同,Swing 中大部分是轻量级构件。正是这个原因,Swing 几乎无所不能,不但有各式各样先进的构件,而且更为美观易用。在本俄罗斯方块游戏的实现中,主要采用Swing类库。(一)、基本窗口类图形用户界面的程序效果类似于 Windows 系统下运行的程序。在俄罗斯方块游戏中用到 JFrame 、JWindow 、JPanel 和 JDialog 等几种窗口类。(二)、原子构件:俄罗斯方块游戏中用到的原子构件很多,如:JLabel 、 JButton 、 JColorChooser、 JTextField 、 JTextArea 等,这些构件的用法比较简单.(三)、菜单类:对一个大的
15、GUI 程序而言通常包括各种菜单,俄罗斯方块游戏中也包含多种菜单,如:JMenu 、 JMenuItem 、JMenuBar 等,Java 为这些菜单构件提供了相应的类。(四)、事件处理:大多数的Java 程序通过GUI 构件(例如按钮、窗口、菜单等)与用户进行交互,俄罗斯方块游戏也是如此。俄罗斯方块游戏与用户最重要的交互活动时用户通过键盘来控制游戏、通过按钮和菜单来设置游戏。前者在Java 中表现为键盘事件,后者表现为动作事件.在Java 中事件由分层的事件类表示,而接口则描述了对特定事件的响应方法。想要处理这些事件的类就必须实现一个或多个接口以及这些接口中的方法。(五)、布局管理:Java
16、 语言中,提供了布局管理器这个工具来管理组件在容器中的布局2.布局管理器按照布局说明选择构件的最佳位置,保证布局的总体外观在不同的操作系统下与Java程序的描述保持一致.一个布局管理器确定各构件在显示区域的次序、相对大小和相对位置.布局管理器在AWT 中定义为接口,Java 提供了若干类来实现它,其中最基本的类有:FlowLayout 、 GirdLayout 、 BorderLayout 。(六)、图形类与图形的绘制:使用Graphics 类提供的绘图方法“public void paint(Graphics g)”可以画出线条、矩形、 圆形等图形。由于Frame类继承于Component
17、类,所以可以通过覆盖所继承的paint 方法来进行绘图。还有一种很流行的绘图方法,即创建一个单独的类,这个类继承于Canvas类并且覆盖paint方法。俄罗斯方块游戏采用的是继承于Canvas类的方式. Graphics 类Graphics 类用于在一个可视构件内绘图。一个Graphics对象包含了绘图所必需包含的信息,其中包括坐标、色彩、字体和剪贴板区。绘图在一个二维整数坐标系中进行,该坐标的原点在构件的左上角。X轴在水平方向上从左至右增长,Y轴在垂直方向上从上至下增长。 Canvas类Canvas是一个具有自己坐标系统的构件,使用布局管理器可以确定它在其他构件中的位置。Canvas继承于C
18、omponent 类,并继承了它的paint(Graphics g)、update(Graphics g)以及repaint()方法。使用Canvas作为绘图工具时首先创建一个类继承于Canvas类并且覆盖paint方法,再将这个类作为一个成员加入到类似于Frame或Applet(JFrame 或JApplet)的类中,用某种布局管理器对其进行定位。这个类需要完成如下工作:Frame 或Applet(JFrame 或JApplet)作为控制者确定所有构件的位置、处理用户的输入、处理其他对象的交互。利用Canvas处理绘图,它的最重要的方法是paint,该方法可以被覆盖。在必要的时候还可以自己定
19、义一些用于绘图的辅助方法。无论使用Graphics还是使用Canvas作为图形对象,都可在需要更新时自动调用repaint方法.repaint方法也可以直接在绘图程序中调用.在repaint中需要调用update方法,update方法在清除屏幕后再调用paint方法。paint方法也可以被实际应用需要的绘图代码进行覆盖.二、 Java多线程机制俄罗斯方块的实现充分利用了Java的线程功能.在游戏过程中需要对玩家的控制进行实时处理.由于游戏中方块的动态性,每个方块都有一定的生命周期,所以选用线程来实现方块.一个方块用一个线程对象实现,该类继承于Thread类,当一个方块出现时也就表示一个线程产生
20、并开始运行.通过对键盘消息的响应,实现移动、下落、变形等操作.利用多线程可以使整个游戏的结构更加松散耦合,使资源更加平衡,使用户的操作更加方便.三、 Java与网络通信网络编程的目的就是直接或间接地通过网络协议与其他计算机进行通信。在网络编程中有三个主要问题: 如何准确定位网络上的一台或多台主机. 如何进行连接. 连接后如何可靠高效地进行数据传输.这几个问题也是实现俄罗斯方块双人对战版游戏的关键所在。下面首先了解如何实现主机定位、建立通信和数据传输。(一)。 主机定位在TCP/IP协议中IP层主要负责网络主机的定位、数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。TCP则
21、提供面向应用的数据传输机制,这是网络编程的主要对象,一般情况下不需要关心IP层是如何处理数据的.通常在一台主机上总是有多个进程需要网络资源进行网络通信.准确的讲网络通信的对象不是主机,而是主机中运行的进程。这是仅通过主机名或IP地址来标识这么多进程显然是不够的。端口号就是为了在一台主机上提供更多的网络资源而采取的一种手段也是TCP提供的一种机制。只有通过主机名或IP地址与端口号的组合才能唯一确定网络通信中的对象,即进程.(二)。 建立通信网络数据通信具有两种不同的传输机制:一种是面向连接的通信协议,这种传输方式在数据传送前必须先在两端建立连接,并且所传送的数据不会丢失,这种方式称为TCP;另一
22、种方式则是面向非连接的方式,即传送数据前无需先建立连接,而是将所要传送的数据包成一个个分组再传送,使用这种方式时,由于没有额外的控制,所以传送的数据可能丢失,这种方式成为UDP.TCP和UDP都是传输层上的通信协议,也是一般TCP/IP网络上最常使用的通信协议,且各有用途.在Java中以类库的形式提供了对这两种不同协议的支持.为了提高俄罗斯方块游戏数据传输的可靠性,双人对战版游戏的开发将通过TCP通信技术实现游戏中的数据传输。(三)。 数据传输通信机制建立后就要进行数据传输,即要在这个通信机制上建立数据流.如果要将数据发往对方,则要建立数据输出流;如果要读取数据则要建立数据输入流。特别是如果要
23、保存和读取整个对象,则需要创建一些存储对象的成员变量和读取成员变量的方法,而且对象中的成员变量最好能够自动地被保存和读取。Java可以支持将对象作为一个整体通过流进行传输和存储,但必须将对象序列化后才能保证有效地存储和读取对象。第二章 可行性研究第一节 引言系统开发的总体任务是实现游戏的可操作性、美观性、及时性.本游戏开发过程遵循软件工程规范,采用结构化和面向对象分析设计方法。主要实现windows的GUI程序开发,对游戏中的图形图像进行键盘控制。游戏者可以通过上下左右键及空格键来对游戏进行操作。下面从技术、经济、操作、法律三个方面分析本系统的可行性:第二节 技术可行性可用于本游戏的编程语言有
24、Java 、VC+、C#.NET等,考虑到编写程序的难易程度,和对语言的了解程度以及各种编程语言自身的特点,选择乐Java作为编程语言进行开发。首先 ,作为一种程序设计语言 ,Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、易移植的、多线程的动态语言。它不依赖于机器的结构,并且提供了并发的机制、具有很高的性能。其次 ,它最大限度地利用了网络,Java的小应用程序可在网络上传输而不受 CPU和环境的限制。另外 ,Java还提供了丰富的类库 ,使程序设计者可以很方便地建立自己的系统。同时还利用了MySQL数据库系统作为其后台数据库,实现排行榜的存储和查询,确保了该系统中数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 俄罗斯方块 设计 实现 sc
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。