基于java的俄罗斯方块小游戏设计(含源文件)

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye


题 目          小游戏开发

摘    要
    俄罗斯方块是我们最常见的游戏之一,该游戏出现过在掌上游戏机、家用游戏机、手机游戏和电脑游戏中,因此俄罗斯方块也是一个十分经典的游戏。我们可以在网上下载到各式各样的俄罗斯方块游戏,也可以在各个游戏大厅中见到网络对战形式的俄罗斯方块。一般的俄罗斯方块规则比较简单,游戏中随机出现一些方块,再对这些方块进行变换,下降到游戏界面中的不同位置,如果某一行中都填充了方块,那么该行就消除。它看似简单却变化无穷,俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。
关键词:  俄罗斯方块 编程 游戏开发
 
Abstract
Tetris may be the most common one in the games. You can find the game on handheld game consoles, console, mobile phone and computer games, so the Tetris is a very classic game. We can downloade many kinds of Tetris games from the Internet , also can see netplay forms of tetris in each game hall. General rules of the Tetris game are relatively simple, random some boxes, the box was transformed, down to the game interface in a different location, if a given row are filled of the boxes, so that the line would be eliminated. It seems simple but with countless changes. The game is easy to learn but difficult to master . As a game known to people of all ages, there's no game can be compared with it in history.


Keywords:  Tetris ,Computer programming, Game development
 
目录
摘    要    2
1.绪论    7
1.1 电子游戏及其分类    7
1.2 电子游戏发展现状    8
2. 引言    11
2.1 课题研究的目的意义    11
2.2 课题研究背景    12
2.3 课题研究所用方法技术介绍    13
3.游戏设计可行性分析    19
3.1 设计目的    19
3.2 软件问题定义    20
3.3 可行性分析    21
3.4 需求分析    21
3.5 游戏需求    22
3.6 软硬件需求    22
3.7 接口控制    23
3.8 方案的选择    23
4. 总体设计    25
4.1 游戏总体设计分析    25
4.2 各模块的算法设计    25
4.3 可靠性设计    31
4.4 概要设计评审    31
5. 详细设计与实现    32
5.1 俄罗斯方块形状    32
5.2 随机生成新的方块:    33
5.3 俄罗斯方块的变换    34
5.4 游戏空间    35
5.5. 游戏演示及操作    40
5.6 颜色变换菜单    41
5.7 功能操作    42
6. 游戏测试    43
6.1 测试的意义及注意事项    43
6.2 测试的步骤    44
6.3 测试过程    46
7. 总结    49
8. 致谢    50
附录1:外文文献及翻译    52
附录2:主要代码    63
 
1.绪论
1.1 电子游戏及其分类
电子游戏,也就是运行在家用电脑、家用电子游戏机或是掌中宝游戏机及街机上的电子游戏程序。电子游戏是一种结合剧情故事、美术、音乐、动画、程序等技术于一身的互动型娱乐软件,涉及到多个行业。 
从电子游戏的分类来看,有着多种分类方式。传统的游戏分类是按照游戏类型,将其分为即时战略游戏、第一人称射击游戏、角色扮演游戏、策略型游戏等类别。根据游戏运行平台的不同,可将电子游戏分为游戏机游戏、单机版PC 游戏、互动电视游戏、在线游戏和手机游戏。此外,韩国政府将电子游戏业分为家用游戏机游戏、单机版PC 游戏、网络游戏和街机游戏四大类。考虑到中韩游戏业比较接近,论文采用韩国的分类标准。“网络游戏”也就是人们一般所指的“在线游戏”,是指通过互联网进行的电脑游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。在互联网(局域网)技术出现之前,电子游戏都可以归于单机版游戏,即“人机对战”游戏,或最多是双人对战游戏。而随着互联网技术的出现,通过连接游戏服务器,上百、上千、乃至上万的游戏玩家同时连线娱乐成为了现实,这就大大增加了游戏的互动性、真实性,丰富了电子游戏的内涵。从网络游戏的分类来看,目前业界还没有一个比较统一规范的分类。随着计算机设备和网络技术的发展,电子游戏在全球得到了迅猛的发展,取得了巨大的成功,已成为当今世界上不可缺少的精神粮食。

1.2 电子游戏发展现状
1.2.1 电子游戏在国外的发展现状
电子游戏是最初产生于美国,1971年,一个还在MIT就读的学生设计了世界上第一个业务用游戏机,这个街机游戏的名字叫《电脑空间》。可以说时至今日,电子游戏仍然是外国的天下。
美国至今仍是世界第一大游戏市场,它遵循的是以发行商为主的产业开发链模式,根据美国市场调查公司NPD Group调查统计,美国2004年游戏总销售金额(包括家用、掌上型主机及软件)为99亿美元,占了全球游戏市场的45%。其中游戏软件销售的具体数字是:视频游戏软件的销售额达52亿美元(1.6亿套),PC游戏软件销售额达11亿美元(4500万套),掌机游戏销售额达10亿美元(4230万套)。2004年一共大约有2.48亿套游戏售出。据估计,美国每个家庭平均购买过2部游戏[3]。
日本近20年来疯狂赚电子游戏的钱。从上世纪60年代初的街机,到六七十年代之间的家用游戏机,再到八九十年代的掌上游戏机,日本经过30多年的耕耘,终于把电子游戏这棵“摇钱树”,培育成第一时尚娱乐产业,垄断全球业界长达10余年。对于日本来说,电玩业已是国家经济的重要支柱之一,在GDP中占有1/5的举足轻重地位。日本游戏业在最辉煌的1998年,曾经占领全球电子游戏市场硬件90%以上,软件50%以上。
韩国号称世界上网络游戏产业最发达国家之一。迄今为止,国内网络游戏市场有超过60%的产品来自韩国游戏软件开发商,韩国网络游戏使国内很多游戏运营公司在游戏营销市场或股票资本市场上获得了巨大的成功。 韩国游戏市场的发展不是偶然,韩国政府不仅给游戏产业以正确的定位和引导,更是将其和本国经济发展紧密地联系到一起,做了很多市场培育方面的工作。韩国政府认识到,靠重型工业来支撑全国经济的做法是片面的,于是将IT、娱乐产业视为新的经济增长点,开始大力扶持。从那时起,科技含量极高而能源消耗极低的游戏制作及相关产业担负起了“富国兴邦”的重担。由文化观光部出面组建韩国游戏支援中心,向韩国游戏产业提供从资金到技术上的多方面支援;成立游戏投资联盟,政府每年向游戏产业投入的资金多达500亿韩元,并为游戏企业提供长期的低息贷款;设立信息化基金和文化产业基金,为游戏产业服务;对指定的风险企业实行各种税制优惠政策,减少甚至免除游戏企业的税务负担;建设游戏产业基地以扶持中小游戏企业的发展;对从事游戏产业的高科技人才免除两年的兵役。 在韩国,从制作到运营,一个网络游戏公司起步门槛较低,主要得益于政府实行的援助计划。此外,在有利的政策形势下,韩国出现了众多的游戏院校,一些原本不涉足此领域的大学也开设了游戏相关专业课程,以大力培养游戏专业人才,从而为游戏生产提供了基础保障。【1】
1.2.2 电子游戏在国内的发展现状
与电子游戏发达的国家相比,我国在电子游戏方面还存在比较大的差距。目前,我国游戏市场正处于发展阶段,但市场上的游戏软件主要来自日本、美国、韩国等地,但由本土游戏制作人开发创作的游戏正在高速增加,国产原创的游戏即将成为游戏的主流。
中国的游戏产业经过80年代初期台湾厂商的探索至90年代,开始了自己的研发、发行的历程,直至网络游戏的风行,让中国的网络游戏开始有了飞速的发展。 1983年,智冠科技有限公司在中国台湾成立,为全球第一家签订授权重制中文版产品代理销售合约的公司,2000年智冠在台湾股票上市, 2002年其控股的中华网龙在台湾上市。
1996年底,UBI SOFT上海分公司暨上海育碧电脑软件有限公司成立。同年,全球游戏软件领军企业EA在中国上海成立办事处。1997年,由尚洋公司制作的《血狮》正式上市。 1997年,北京新天地互动多媒体技术有限公司成立,该公司引进了《古墓丽影III》(TombRaider III)、《盟军敢死队》等著名欧美游戏,并在1999年在中国率先掀起“游戏软件价格革命”,全面推行50元的价格体系,从此正版游戏价格开始贴近大众消费者。 1999年,业内估算中国电脑游戏市场(正版)约1.5亿元人民币。 2000年,大陆华彩软件代理发行第一款中文MMORPG《万王之王》正式推出,该游戏于1999年在台湾发行,由台湾雷爵资讯(Lager)开发。也在2000年,继《万王之王》、《石器时代》、《网络三国》在台湾上市之后,游戏桔子推出了《天堂》,游戏桔子成立于1995年,1999年以《便利店》在台湾奠定了地位。《天堂》这款由韩国著名游戏公司Ncsoft研发的网络游戏不但在本国大获成功,也在台湾再次夺冠。 2001年初,北京华义在中国大陆地区正式推出了《石器时代》,华义国际股份有限公司于1993年在台北成立,2001年在台湾股票上市。《石器时代》成为大陆当时最流行的网络游戏。2001年,天人互动软件技术有限公司在北京成立。当年与SEGA结成PC游戏业务的战略合作关系,发行了《樱花大战Ⅱ》《文明Ⅲ》《无冬之夜》等经典游戏,2002年,引进在欧美网络游戏《魔剑》(Shadow Bane),这是首款在中国测试的欧美网络游戏。 2001年5月,“联众世界”经过3年多的迅速成长,以同时在线17万人、注册用户约1800万的规模,成为当时世界用户数量第一的在线游戏网站。
2005年1月21日,中央电视台报道:我国网络游戏产业当年增加了50%,今后几年都将以50%以上的速度增长;第一届中国网络游戏年会报道:中国国内网络游戏2004年规模达24.7亿元,2009年规模将达到109.6亿元。【2】
 
2. 引言
2.1 课题研究的目的意义
在工作压力及其巨大的今天,游戏成了众多上班一族和学生朋友学习放松的工具,所以设计了一个俄罗斯方块的游戏程序,游戏功能齐全,随进随出,根据自己的能力设置游戏的难度系数。这个课题的研究开发,巩固了所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse等开发工具的运用,拓宽常用类库的应用。通过该课题的研究开发,把所学课程及相关知识加以融会贯通,理论与实际的结合,全面掌握Java语言的编程思想及面向对象程序设计的方法。将传统的俄罗斯方块游戏,通过java编程实现基本的游戏功能,同时添加分数、窗体选择等新的功能,美化游戏的界面外观,增加了游戏的好玩性。
    本论文就是为了实现这些想法而设计的。其研究意义有以下几点:
(1) 可以通过此俄罗斯方块游戏的开发,对java编程语言的开发技术有一个全新的了解,各方面应用比较到位,使理论用于了实践,掌握了java开发程序的全过程(包括系统分析,程序设计,程序开发)。
(2) 利用以前传统的俄罗斯方块游戏(单人游戏)通过java技术将其设计为基本的电脑控制游戏,使自己对游戏的开发有了一个比较全面的了解。
(3) 用户可以对游戏的难度和状态进行灵活的设置,这点可以方便游戏玩家的操作,同时也为游戏界面提供了丰富的内容。
    总之,本课题的研究实现了俄罗斯方块游戏的基本功能,使自己所学的java编程技术得到了复习和应用,对软件的开发有了进一步的了解。 
该课题的研究开发目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。利用以前传统的俄罗斯方块游戏(单人游戏)通过java技术将其设计为基本的电脑控制游戏,使自己对游戏的开发有了一个比较全面的了解。 培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来实际工作打下坚实的基础。【3】
2.2 课题研究背景
俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值在游戏史上是非常巨大的。这款游戏最初是由苏联的游戏制作人 Alex Pajitnov 制作的。 最终经过各种改良,俄罗斯方块的第一个PC版本诞生了,他们给这个游戏取了一个源于希腊文字的名字“四”(tetra)——Tetris,即现在的“俄罗斯方块”。 这种将不断掉落的各种形状的方块摆满一行将之消除的游戏,不仅风靡了当时的俄罗斯, 甚至到现在依然以其不退的热度席卷着全球。
众多的游戏开发者也纷纷效仿制作出了各种新版本, 因此也使“俄罗斯方块”这款老少皆宜的游戏变得越来越趣味横生。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在一些联众网络游戏中,更有一些独有的魅力 ―― 有单机作战、双人单机对战和双人网络对战三种游戏模式,三种模式都是在一行堆满后就可以消掉,最后方块堆积至窗口顶端,即告负,用户可任选一种模式进行游戏。其中单人模式是一种玩积分的游戏,如果积分高的话,还可以存入高分榜上。而双人单机对战模式则是两个人在同一台机器上进行对战游戏,双人网络对战模式则需要两人首先进行网络连接,然后才能进行对战游戏,后两种模式在游戏过程中如果自己一次消去两行以上的话,就可以送给对方使对方的行数增长,让你尽情体会对战的趣味。另外,网络对战模式还具备网络聊天功能,让你在游戏过程中还能体验到聊天的乐趣,同时也给用户提供了一个展现自己高超技艺的场所。
现在我国的网络迅速普及,以往的只限于单机版的游戏已远远不能满足广大的游戏玩家,这便促使我们向着一个更高层次的水平去迈进,所以要求我们设计游戏时,要出于吸引玩家的目的,应该提高游戏的好玩度。但可玩度是好玩度的基础。好玩度在上升到一个阶段后将由于可玩度的限制而不能再继续上升。以俄罗斯方块为例,通过对每个方块添加意义,增加关数并为每关赋上不同的意义(也就是情节),增加画面效果(如三维立体效果且在水下玩的)和音效(如方块落地时发出机械的焊接声音)。即使这样,其好玩度也不能超过RPG类游戏。所以,要提高可玩度,就要在游戏的组成上下工夫;要提高好玩度,就要在游戏的外衣上下工夫。
    国内有人专门将俄罗斯方块游戏做为经典教材来学习IT。改造后的版本,有的仿制程序中方块的形状和颜色等又新添加了许多美化功能,甚至连方格也可以放大缩小。【4】

2.3 课题研究所用方法技术介绍
2.3.1  Java语言基础
Java语言特点
1.简单性  Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。
2.面向对象  Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。
3.健壮性   Java在编译和运行程序时都要对可能出现的问题进行检查。类型检查可以帮助检查出许多开发早期出现的错误。Java提供自动垃圾收集机制来进行内存管理,减少了内存出错的可能性
4.分布性   Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。
5.体系结构中立   Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。为了使Java的应用程序能不依赖于具体的系统,Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。
6.安全性   用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
7.可移植性   同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何市场计算机系统上运行,这成为Java应用软件便于移植的良好基础。通过定义独立于平台的基本数据类型及运算,Java数据得于在任何硬件平台上保持一致。另外,Java的编译器由Java语言实现,解释器由标准C实现,因此Java本身也具有可移植性。
8.解释性   Java编译器将Java源文件生成类文件,扩展名为.class,类文件可通过Java命令加载,解释和执行,将Java字节码转换为机器可执行代码。Java解释器能直接运行目标代码指令。
9.高性能性   如果解释器速度大慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟可以调用300000个过程,翻译目标代码的速度与C/C++的性能没什么区别。
10.多线程性   Java语言内置支持多线程的功能,使得在一个程序里可同时执行多个小任务。多线程带来的更大好处是更好的交互性能和实时控制性能。
11.动态性   Java的动态性是其面向对象设计方法的发展。它允许动态地装入运行时所需要的类,这是C++语言所无法实现的。【5】

Java的优点
(1) 安全性 
Java是一种安全的网络编程语言,不支持指针类型,一切对内存的访问都必须通过对象的实例来实现。这样能够防止他人使用欺骗手段访问对象的私有成员,也能够避免在指针操作中易产生的错误。
此外,Java的安全性体现在多个层次上:在编译层,有语法检查;在解释层,有字节码校验器,可进行代码段格式测试和规则检查、访问权限和类型转换合法性检查、操作数堆栈的上溢和下溢检测、代码参数类型合法性检查等;在平台层上,通过配置策略,可设定访问资源域,无须区分本地或远程。
(2)  可移植性 
Java具备有很好的移植性,这主要得益于它与平台无关的特性。同时,Java的类库中也实现了与平台无关的接口,这使得这些类库也能移植。同时,Java编译器主要是由Java本身来实现的,Java的运行系统(解释器)由标准C语言实现,因而整个Java系统都具有可移植性。 
(3)  多线程机制 
Java具有多线程机制,这使得应用程序能够并行地执行。它的同步机制也保证了对共享数据的共享操作,而且线程具有优先级的机制,有助于分别使用不同线程完成特定行为,也提高了交互的实时响应能力。Java的多线程技术使网上实时交互实现很容易,从而为解决网上大数量的客户访问提供了技术基础。
(4)  跨平台
通常,在Windows下编写的程序是不能直接拿到UNIX上运行的,因为程序的执行最终必须转换成为计算机硬件的机器指令来执行,专门为某种计算机硬件和操作系统编写的程序是不能够直接放到其他类型的计算机硬件上执行的,至少要做移植工作。要想让程序能够在不同的计算机上运行,就要求程序设计语言能够跨越各种软件和硬件平台,而Java恰恰满足了这一需求。Java编译器能够产生一种与计算机体系结构无关的字节指令,只要安装了Java虚拟机,Java就可以在相应的处理机上执行。【6】

Java语言基础
Java数据类型分为基本数据类型、空类型和复合数据类型。基本数据类型包括:char、byte、short、int、long、float、double、boolean;
基本运算符:算术运算符、关系运算符、逻辑运算符、条件运算符、位运算符、赋值运算符和复合赋值运算符。
在程序中使用各种数据时,其表现形式有两种:常量和变量。
结构化程序设计有三种基本数据结构:顺序结构、选择或条件结构、循环或重复结构。                                        
If语句是选择结构最基本的语句。If语句有选择地执行语句,只有当表达式条件为真时执行程序。
for语句是使用最灵活,最广泛的循环语句。for语句的一船语法格式为:
for(

  • 8
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值