基于Java的俄罗斯方块游戏的设计与实现(论文+PPT+源码)

幻灯片1

毕业论文答辩

Based on the design and implementation of Java game Tetris

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

LOGO

幻灯片2

目 录

01

课题综述与研究背景、意义

02

研究方法及相关技术

03

程序需求分析简介

04

程序系统设计简介

05

程序总体设计简介及测试运行

06

论文总结与致谢

幻灯片3

1

课题综述与研究背景、意义

俄罗斯方块游戏是一款风靡全球,经久不衰的游戏产品。它曾经创造了无可匹敌的商业价值,影响了一代游戏业的发展史,推动了信息时代科技时代的不断发展。

幻灯片4

游戏研究背景

随着计算机技术的日渐更新与不断迅速的发展,俄罗斯方块游戏也从原来的掌机,电视游戏机发展处pc端,智能手机游戏等各种各样的模式。俄罗斯方块游戏的影响力毋庸置疑。俄罗斯方块游戏界面简单,代码、算法实现并不复杂,是一款作为初学者熟悉知识,锻炼编程技巧的良好的游戏系统。

程序开发意义

俄罗斯方块游戏是一款简单、益智但又不缺乏乐趣的休闲小游戏,在日益繁忙,生活节奏越来越快的现代生活中,为压力巨大的人们提供了一款既节省时间又有趣的小游戏。并且俄罗斯方块游戏开发简单,实现并不复杂,是编程新手很好的练习素材。本次课题研究,不仅在开发技术上,还是社会意义上都具有很大的价值。

幻灯片5

俄罗斯方块游戏研究现状

首先,俄罗斯方块首先作为一种教育用软件,在授权给各大公司之后,各大平台上就陆续出现了无数的各种各样版本的俄罗斯方块游戏。在海湾战争期间,美国前线的美国士兵都将这款游戏作为消磨时光的最佳选择之一。其次,俄罗斯方块游戏具有简单性,数学性,动态性和极大的知名度,程序员经常作为设计与练习的题材。让俄罗斯方块游戏的研究变得越来越火。

幻灯片6

2

Chapter

研究方法与技术

Java在发展的近20年间,已发展成为人类计算机历史上最有影响力的编程语言之一,甚至其超出了编程语言的范畴,成为了一种开发规范模式。本课程设计主要用Java编程语言,在Eclipse平台上实现。

幻灯片7

Java

Eclipse

Java语言是一门非常纯粹它吸引了C语言和C++语言的各种优点,又摒弃了C++语言里难以理解的多继承,指针等概念,因此Java语言具有功能强大和简单易用两个非常良好的特征的面向对象的编程语言。

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。Eclipse只是一个框架和一组服务,用于通过插件组件构建开发环境。

幻灯片8

S

W

I

N

G

简介

Swing API 是一组可扩展的 GUI 组件,用来创建基于 JAVA 的前端/ GUI 应用程序。它是建立在 AWT API 之上,并且作为 AWT API 的替代者,因为它的几乎每一个控件都对应 AWT 控件。 Swing 组件遵循模型 - 视图 - 控制器架构来满足下面的准则。一个单一的 API 足够支持多种外观和风格;API 是模拟驱动的,这样最高层级的 API 不需要有数据;API 是使用 Java Bean 模式的,这样 Builder Tools 和 IDE 可以为开发者提供更好的服务来使用它。

Swing特点主要有:轻量级、丰富的控件、高级自定义、可插拔的外观和风格。

幻灯片9

3

Chapter

程序需求分析简介

系统的需求分析,主要是用来说明本系统是一个什么系统,必须用来做什么,就这个问题上达到开发人员和主要用户之间的共识。系统的可行性分析,主要就是对系统的所有的一切资源实施进行分析,用来说明系统的开发和投入的合理性,可行性和必然性,并对其中可能会出现的不可预见性的问题进行合理的分析。

幻灯片10

可行性分析

经济可行性分析

本游戏系统主要是用于大学生软件工程毕业课程设计,不需要考虑其所能产生的经济效益和游戏日后的发展状态。所以经济问题可不用考虑。

技术可行性分析

本系统主要利用的是Java中的Swing组件进行开发,技术方面要求并非特别困难,技术可行。

社会可行性分析

本游戏系统的开发主要是用于毕业课程设计与论文,用以巩固大学四年学习的知识,主要以个人和学校为单位,仅供个人娱乐和学校的课程设计与毕业论文检查入档案。

幻灯片11

需求分析

之功能性需求

本游戏的默认背景色是深绿色,游戏主界面画面自定义为自己的所喜欢的图片,并可以更改,主界面方块默认用橘黄色,预显方块颜色默认为淡紫色。背景色、前景色对比鲜明,以达到让玩家眼前一亮的感觉。

键盘、鼠标处理事件需求,当方块下落时,玩家可以通过键盘上的方向键标,可以点击控制面板中的菜单按钮和帮助按钮。

用数组作为存储方块52种状态的数据结构,即初级等级长条形、Z字形、反Z形、田字形、7字形、反7形、T字型一共7种形状的向4个方向的旋转变形,和中级等级的三种方块12种不同的状态,高级等级的三种方块12种不同的状态。

要求当方块落下后填满一整行,则该行消除,其余剩下的未填满的行自动逐次向下移动,当方块落下叠加到主界面的全部所有行时,方块不再下落,游戏结束,主界面提示“Game Over”字样。

幻灯片12

需求分析

之非功能性需求

俄罗斯方块游戏系统的非功能性需求包括游戏主界面左上角图标显示,调整窗口尺寸最大化最小化(但不包括主界面的尺寸大小),游戏运行时弹出窗口的位置居中等一系列非功能性需求。

幻灯片13

4

Chapter

程序系统设计简介

幻灯片14

手工处理业务的基本流程

1>运行程序,点击右侧控制面板内的“开始”或“控制”菜单内的“开始”按钮开始游戏。

2>使用上、下、左、右键和空格键,P键,C键控制方块的变形、下落、向左和向右移动和一键迅速下落,暂停,继续。

3>方块满行消除,分数自动增加,等级自动增加一级。

4>等级增加、方块下落速度增加,按右侧控制面板或“游戏”菜单内的“初级”“中级”,“高级”按钮来手动改变游戏难易程度。也可点击“方块颜色”菜单内的选项,更改方块颜色等,也可以通过“自定义”菜单内的选项,来更改游戏的一些属性。

5>按键盘键字母P键可以控制游戏暂停,然后按子母键C键可以控制游戏继续上次游戏。按“结束游戏”按钮,游戏会彻底停止正在进行的当局游戏,再按“开始”或“控制”菜单内的“重新开始”会开始新游戏。

6>当方块占满整个窗口,不能再有新方块下落时,游戏会弹出“Game Over”的对话框提示游戏结束。

幻灯片15

游戏的功能模块图

游戏的基本流程图

幻灯片16

游戏的功能模块

本系统基于游戏的各项功能来设计游戏的各个功能模块。本游戏主要有两大模块:游戏界面区,游戏控制区。

游戏界面区

游戏控制区

显示玩家可选操作、显示玩家操作结果两个部分。

更改颜色、开始、更改游戏等级为初级、更改游戏等级为中级、更改游戏等级为高级、自定义下落速度、更改背景、退出以及其他等一些功能模块。

幻灯片17

5

程序总体设计简介及测试运

Java是一种纯面向对象(Object-Oriented)的程序语言,具有很多优点。本课程设计主要通过几个模块来实现各项功能。

幻灯片18

方块及数据显示功能

方块移动控制模块

游戏主界面显示功能

功能模块

游戏进度模块

游戏界面颜色控制模块

音乐添加模块

游戏等级控制模块

等一系列模块

幻灯片19

主要功能实现的截图

幻灯片20

本游戏主界面设计的初始颜色搭配基于对比鲜明的原则,默认背景色为深绿色,左上角设置俄罗斯方块图标,得分初始值为0,等级初始值为1,最高分记录初始值为0。游戏主窗体尺寸设置为(520,580),方块移动范围窗格由一个20行、12列的二维数组控制,且左上角图标设置为方块图案,起标识作用。

public GameCanvas(int rows, int cols) {

this.rows = rows;

this.cols = cols;

this.setOpaque(false);

boxes = new Box[rows][cols];

for (int i = 0; i < boxes.length; i++) {

for (int j = 0; j < boxes[i].length; j++) {

boxes[i][j] = new Box(false);

}

}

setBounds(0, 0, 300, 500);//设置相对位置坐标

setBorder(new EtchedBorder(

EtchedBorder.RAISED, Color.white, new Color(148, 145, 140)));

}

主界面显示模块

幻灯片21

方块和数据信息是游戏中最基本的功能模块。本游戏用二维数组存储方块的28种样式。值得注意的是:在传统的俄罗斯方块游戏的基础上,本游戏系统为了体现出创新的思维,本着为了学习的原则,在传统游戏的基础上增加了中级三种其他的方块样式和高级三种其他的方块样式。一共有52种方块样式,具体的存储方式主要实现代码如下:public final static int[][] STYLES = {// 共28种状态

{0xf000, 0x8888, 0xf000, 0x8888}, // 长条型的四种状态

{0x4e00, 0x4640, 0xe400, 0x4c40}, // 'T'型的四种状态

{0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态

{0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态

{0x6220, 0x1700, 0x2230, 0x7400}, // '7'型的四种状态

{0x6440, 0xe200, 0x44c0, 0x8e00}, // 反'7'型的四种状态

{0x6600, 0x6600, 0x6600, 0x6600}, // 方块的四种状态

{0x8c88,0xf200,0x44c4,0x4f00},//增加的中级样式方块3个

{0xea00,0xc4c0,0xae00,0xc8c0},

{0x8c00,0xc800,0xc400,0x4c00},

{0xac00,0xcc40,0x6e00,0x8cc0},//增加的高级样式方块3个

{0x4e40,0x4e40,0x4e40,0x4e40},

{0x8480,0xa400,0x4840,0x4a00},

};

方块、数据信息模块

幻灯片22

系统测试

利用设计的测试用例表,测试结果为成功

利用设计的测试用例表,测试结果为成功

利用设计的测试用例表,测试结果为成功

利用设计的测试用例表,测试结果为成功

“游戏”菜单测试

方块的堆砌与消行功能测试

按键事件的功能测试

“帮助”菜单测试

系统测试,是将软件,计算机硬件,外围设备,网络等元素确认在一起进行各种信息系统的组装测试和确认测试,系统测试是为整个产品系统进行测试,目的是验证是否 系统满足需求规格的定义,找出与需求规格不一致或矛盾的地方,以提出更全面的方案。系统测试发现问题后,尝试找出错误的原因和位置,然后进行更正。

幻灯片23

6

Chapter

论文总结与致谢

幻灯片24

为了熟悉俄罗斯方块的相关功能和设计,我时常从各大游戏下载网站下载单机版俄罗斯方块游戏,并研究其中功能的实现和界面的设计,思考和查阅资料进行分析,经过逐步的设计与反复的修改论证,才完成了整个游戏的开发。

从本次课程设计论文编写我收获的知识

在游戏设计过程中,我采用从粗到精的设计模式,从小到大测试的原则。先设计游戏框架,并逐层测试,而后再添加具体实现代码并逐步进行更细化的测试。设计过程中,经常会遇到难题,我会通过反复思考和测试,然后找出自己的错误并加以改正,再进行下一个步骤,确保万无一失,尽力减轻最后的调试工作量。

毕业设计业可以作为一个不断学习新鲜事物的过程,从设计初的不懂到最后能够圆满完成,我体会到在实践中不断学习的重要性,这对于将来我走上工作岗位具有重要的教育意义。通过毕业设计的创作,我对Java这门课程有了更深一步的了解,也对我今后的就业之路打下了一定的基础。

幻灯片25

在这次毕业设计制作和毕业论文写作过程中,郭苗老师和兰方鹏老师在论文写作过程、相关专业知识的指导等方面,给予了我大力的支持和帮助。

向四年来教我知识、育我成长的太原理工大学软件学院软件工程系的全体教师致以最衷心的谢意!

感谢

感谢

感谢

由于我的学识有限,加之时间仓促,文中不免有错误和待改、不足之处,真诚欢迎各位师长、同学提出宝贵意见。

幻灯片26

感 谢 您 的 聆 听!

LOGO

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值