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


    目  录

    1 引言

    1.1 课题研究背景和意义

    1.2 国内外现状分析

    1.3 课题研究主要内容

    1.4 论文组织结构

    2 核心技术介绍

    2.1 AWT技术介绍

    2.2 eclipse编译器介绍

    2.3 JAVA集合类技术简介

    3 需求分析

    3.1 游戏的设计模式

    3.2 系统的设计目标

    3.3 经济可行性研究

    3.4 技术可行性研究

    3.5 操作可行性研究

    4 游戏对象详细设计

    4.1 建立对象数据模型

    4.2逻辑结构分析设计

    5 系统的详细设计

    5.1 游戏系统设计原则

    5.2 游戏登录模块

    5.3 线程管理模块

    5.4 下落速度设计模块

    5.5 方块颜色模块

    5.6 画布背景模块

    5.7 用户控制模块

    5.8 规则控制模块

    6 游戏测试运行

    6.1 模块测试

    6.2 测试过程

    6.3 测试结果

    7 结语

    参考文献

    致  谢

    基于JAVA的俄罗斯方块的设计与实现

    作者

    信息与管理科学学院××专业

    摘要:国内游戏行业的快速发展,各种各样的游戏层出不穷。而俄罗斯方块,是一种在全世界流行的益智游戏。基本游戏规则是在一个摆放小型正方形的场地内通过移动,旋转,摆放按规律自动下落的不规则方块组合体,完成满行消除的操作,通过消除数量的多少判断游戏得分。该俄罗斯方块最初流行于俄罗斯,后被任天堂代理,现已逐渐在全球各地流行。

    本游戏利用JAVA技术进行开发。基本完成了游戏的基本功能,建立起了一个较为完整的系统。一个玩家即可参与游戏,抽象的和JAVA面向对象语言相结合。得到游戏结果,分析基本元素,和最终取胜规则。实现了游戏的基本运行。利用算法实现对游戏规则的保证。

    本系统的核心功能1个用户即可参与:方块下落,移动,旋转,下落,判断是否消除,得分规则的判断。

    关键词:JAVA;俄罗斯方块;益智;算法设计

    Design and Implementation of Tetris Based on JAVA

    Abstract: With the rapid development of the domestic game industry, a variety of games emerge in an endless stream. Tetris is a puzzle game popular all over the world. The basic rule of the game is to complete the full row elimination operation by moving, rotating, and placing irregular square combinations that fall automatically in a small square field. The game score is judged by the number of eliminations. The Tetris was initially popular in Russia and was later represented by Nintendo. It has gradually become popular all over the world.

    This game is developed using JAVA technology. Basically completed the basic functions of the game, and established a relatively complete system. One player can participate in the game, which is abstractly combined with JAVA object-oriented language. Get the game results, analyze the basic elements, and the final winning rules. The basic operation of the game is realized. Use algorithms to guarantee the rules of the game.

    One user can participate in the core functions of this system: cube falling, moving, rotating, falling, judging whether to eliminate, and judging the rules of scoring.

    Keywords:JAVA; Tetris; puzzle; algorithm design


    1 引言

    1.1 课题研究背景和意义

    随着科技的进步,计算机已经普及每个家庭,而计算机游戏也随之越来越多,越来越丰富。网络游戏、单机游戏等休闲游戏让众多人喜欢,而俄罗斯方块也受广大群众的追捧。“俄罗斯方块”是流行于全国的一种益智游戏,玩法简单,娱乐性强,老少皆宜。而目前网上俄罗斯方块的游戏层出不穷,但是对俄罗斯方块游戏的基本实现却几乎没有,其实对于这种益智游戏,只需要搞清楚逻辑的实现,游戏的基本功能也就容易实现了。

    1.2 国内外现状分析

    目前益智游戏的发展不只是以前随随便便一款休闲APP的小游戏了,它的发展不再只是门槛低的时代,而是大型具有竞争力的一个游戏市场。益智游戏本身是具备娱乐性、益智、竞技等的特点,那么对于益智游戏开发公司来说,具有竞技性很强的益智游戏更容易受到一些资深益智游戏玩家的喜欢。而俄罗斯方块作为老牌益智游戏,以其规则简单玩法丰富多变,长期处于益智游戏的榜首。

    俄罗斯方块的规则简单玩法丰富,通过简单基础的操作即可完成游戏,达到消灭方块的快感,是当前很多消除类小游戏的鼻祖。其次呢就是俄罗斯方块这种益智游戏耗时短,同样是半小时,你可能玩一局MOBA游戏都不够,但是玩俄罗斯方块的话可以玩上十多把,关键还不用费时费力。

    其实一款游戏能不能火除了游戏内容,游戏体验,还有游戏人群。益智游戏就很好地抓住了游戏人群这一点,他的游戏人群主要是一些成年人,例如高中大学生,上班人员,农民,退休人员等等……由于这款游戏的特殊人群,也造就了这款游戏的游戏体验,他们不像一些年轻的游戏玩家,会在游戏里恶意中伤其他玩家,也不会出现直接退出游戏,因为成年人的心理相比较那些中学生来说更加的成熟,更加的稳重。

    1.3 课题研究主要内容

    通过对俄罗斯方块游戏的编写,使得自己对于JAVA技术和JAVA容器集合有了更深的认识。课题设计使用JAVA语言,能够学习巩固JAVA基础。此课题设计的知识有AWT,面向对象思想和socket等技术。还跟JAVA容器的知识有关。在不断的学习过程中提高自己的编程能力。本游戏的编译器是利用eclipse,用容器实现对方块的封装。其主要功能有:方块下落,移动,旋转,下落,判断是否消除,得分规则的判断,将理论和游戏的实际应用在操作上结合在一起。希望能够在编码实现的过程中更加熟练。所以这就是本课题研究的主要内容。

    (1)本次针对系统设计并实施方案,使用软件开发的流程进行前期的调研、分析,确定软件的使用技术是否可行,能否完成需要的角色权限管理以及不同模块的功能设计开发,最后确定主要的开发技术和方案。

    (2)抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。AWT提供了JavaApplet和Java Application中可用的用户图形界面GUI中的基本组件(components)。由于Java是一种独立于平台的程序设计语言,但GUI却往往是依赖于特定平台的,Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口,这保证了同一程序的GUI在不同机器上运行具有类似的外观。

    (3)集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。

    1.4 论文组织结构

    论文共有六个章节,每个章节的简要内容如下:

    第一章:绪论。对俄罗斯方块游戏开发的意义及背景进行介绍。

    第二章:关键技术。对开发该游戏运用的关键技术进行简单介绍。。

    第三章:需求分析。对系统进行需求分析,用户功能及可行性分析。

    第四章:系统分析设计。针对游戏功能模块,进行分析及设计。

    第五章:功能实现。针对游戏的具体功能实现具体的代码。

    第六章:游戏测试。阐述游戏测试的目的、用例、过程及结果。

    2 核心技术介绍

    2.1 AWT技术介绍

    AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,称之为peers,当利用AWT编写图形用户界面时,实际上是在利用本地操作系统所提供的图形库。由于不同操作系统的图形库所提供的样式和功能是不一样的,在一个平台上存在的功能在另一个平台上则可能不存在。为了实现Java语言所宣称的“一次编写,到处运行(write once, run anywhere)”的概念,AWT不得不通过牺牲功能来实现平台无关性,也即AWT所提供的图形功能是各种操作系统所提供的图形功能的交集。Abstract Window Toolkit(AWT)是一个图形过程库,使用Java语言通过位图显示来操纵窗口。最后设计者又将AWT扩充为Alternative Window工具箱和Applet Widget工具箱。最新的GUI接口称为Swing,扩展了AWT,程序开发人员可以利用Swing生成独立于平台的GUI对象。

    2.2 eclipse编译器介绍

    虽然eclipse是一个编译器,但是随着越来越多的插件出现,eclipse可以把这些插件集成到自身功能中从而使其功能更加丰富。它满足日常的开发场景,功能包含了系统整个开发的不同阶段,使用起来很方便快捷,包括前端的界面编写、后端的业务逻辑代码、框架的引用、组件下载等,其均可以完成本次开发的实际使用。数据库是开源免费的版本,使用标准的SQL语法,不需要进行额外的学习,就可以使用操作数据库,并且部署的软件直接安装就可以使用,维护也很方便,连接数据库的工具使用的是老牌的SQLYOG软件,此款软件具有表设计、代码查询纠错等功能,非常的好用,能够满足此次开发的需求。

    2.3 JAVA集合类技术简介

    集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。集合类是用来存放某类对象的。集合类有一个共同特点,就是它们只容纳对象(实际上是对象名,即指向地址的指针)。这一点和数组不同,数组可以容纳对象和简单数据。如果在集合类中既想使用简单数据类型,又想利用集合类的灵活性,就可以把简单数据类型数据变成该数据类型类的对象,然后放入集合中处理,但这样执行效率会降低。

    3 需求分析

    3.1 游戏的设计模式

    由于游戏的业务逻辑清晰,我们只需要将功能逻辑编织到代码中实现即可,所有在数据库上,没有选择传统的MySQL等数据库,而是直接选择JAVA的集合类来存储方块对象,也使得使用AWT作为窗口页面的游戏更容易实现,可以通过灵活的窗口布局和特定的窗口尺寸来实现对数据的传输和接送,使用Socket技术来实现局域网的联机。

    3.2 系统的设计目标 

    设计而成的游戏要有以下目标:

    (1)对各个用户的方块下落逻辑

    (2)移动旋转逻辑

    (3)下落逻辑,判断方块是否符合要求

    (4)消除逻辑,判断方块是否符合要求

    (5)最终游戏结束逻辑

    结合完成了以上的基本目标之后,游戏的基本功能已经可以实现,通过面向对象的思想,将这些功能抽离出来,形成一个一个的方法,映射到实体类中,再通过调用相关方法,将游戏的进行逻辑组合起来。使使用者可以简单方便的实现俄罗斯方块游戏,本程序界面友好,操作简单,比较实用。

    3.3 经济可行性研究

    游戏带来的收益是很多的。益智游戏自身优势培养出的用户习惯和用户粘性,也是留下游戏玩家继续发展的前提。益智游戏最早PC端利用网页版的益智游戏也是为了顺应互联网的发展,为已有的益智游戏玩家提供线上娱乐平台,那么在现在移动互联网普及的时代,益智游戏的开发就给益智游戏开发公司提供了新的贴近玩家用户的机会。益智游戏不仅实现了随时随地的进行休闲娱乐,也可以随时联网与好友及其他玩家组局,提高了竞技玩法。所以经济上是可以的。

    3.4 技术可行性研究

    根据前期对游戏功能的设计、确定,选择使用可行的软件结构和开发技术来完成游戏的开发,游戏在设计开发中的软件、架构、开发技术选择上均是使用了简单好用的开发的模型和别人成熟的解决办法,综合市面上的同类型平台,本次开发使用的技术是可行的,且能够在满足游戏功能开发的前提下做到最少的开发开支以及学习成本和时间成本。且此次开发使用的JAVA开发模式能够极大地快速构建、有大量的样本参考学习,所以也无需担心后期的技术维护和升级,通过对于事先调查研究的一些成熟的案例范本来看,本次的游戏在设计完成上是可以的。

    3.5 操作可行性研究

    游戏设计开发出来的目的是为了给特定的用户群体访问、使用、操作,所以系统在设计开发中需要着重的考虑用户群体的问题,本次的用户群体能够普遍接受信息化的使用操作和管理,所以学习成本很低,系统在设计上没有采用过于专业的设计,使用的操作按钮、界面、功能等均是用户群体较为了解的,参考了很多类似的主流游戏得来的,所以游戏在操作可行性上是不用过多考虑的。

     

     

  • 相关阅读:
    Python网络爬虫第二课----requests模块应用
    [项目管理-2]:软硬件项目管理 - 干系人管理、实践活动、常见工具
    对话庄表伟:开源第一课
    Flink---13、容错机制(检查点(保存、恢复、算法、配置)、状态一致性、端到端精确一次)
    K8s源码分析(22)-client go组件之clientset
    人人都能看得懂的数据分析书
    第一季:5递归与迭代【Java面试题】
    PyCharm安装部署(一) 百篇文章学PyQT
    AP5126 降压恒流 PIN对PIN替LN2566 LED汽车大灯车灯驱动芯片
    Visual Studio Code配置c/c++环境
  • 原文地址:https://blog.csdn.net/weixin_47958760/article/details/126899592