java毕业论文范文

上传人:1777****777 文档编号:38141438 上传时间:2021-11-05 格式:DOC 页数:27 大小:196.52KB
收藏 版权申诉 举报 下载
java毕业论文范文_第1页
第1页 / 共27页
java毕业论文范文_第2页
第2页 / 共27页
java毕业论文范文_第3页
第3页 / 共27页
资源描述:

《java毕业论文范文》由会员分享,可在线阅读,更多相关《java毕业论文范文(27页珍藏版)》请在装配图网上搜索。

1、1 XXXX 学院学院毕毕 业业 论论 文文作作 者:者: XXXX 学学 号:号: XXXXXXXXXXXXXXXXXXXX . .学学 系:系: XXXXXXXXXXXXXX 系系 . .专专 业:业: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . .题题 目:目: JAVAJAVA 游戏设计游戏设计俄罗斯方块俄罗斯方块 . .指导者:指导者: XXXXXXXX 讲师讲师 20122012 年年 4 4 月月 南南 京京2毕毕 业业 论论 文文 中中 文文 摘摘 要要俄罗斯方块是我们最常见的游戏之一,该游戏出现过在掌上游戏机、家用游戏机、手机游戏和电脑游戏中,因此俄

2、罗斯方块也是一个十分经典的游戏。我们可以在网上下载到各式各样的俄罗斯方块游戏,也可以在各个游戏大厅中见到网络对战形式的俄罗斯方块。一般的俄罗斯方块规则比较简单,游戏中随机出现一些方块,再对这些方块进行变换,下降到游戏界面中的不同位置,如果某一行中都填充了方块,那么该行就消除。它看似简单却变化无穷,俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。关键词关键词 俄罗斯方块 编程 游戏开发3毕毕 业业 论论 文文 外外 文文 摘摘 要要TitleTitle TheThe DesignDesign

3、 ofof TerisTeris GameGame AbstractAbstractTetris 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 netp

4、lay 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 countl

5、ess changes. The game is easy to learn but difficult to master . As a game known to people of all ages, theres no game can be compared with it in history.KeywordsKeywords Tetris ,Computer programming, Game development4目目 次次1 绪论 .11.1 游戏开发意义 .11.2JAVA 语言概述 .151.2.1java 技术简介 .11.2.2java 体系结构 .21.2.3ja

6、va 语言优势 .21.3 JAVA JDK 的安装以及环境变量的设置 .32 可行性研究 .52.1 设计目的 .52.2 可行性研究 .53 需求分析和概要设计 .63. 1 游戏功能需求 .63.2 需求分析原则 .63.3 概要设计 .73.3.1 模型层(Model)功能模块图设计 .73.3.2 游戏结构流程图 .84 游戏的详细设计 .94.1 图形的数据结构 .94.2 游戏界面.104.3 图形的移动 .134.4 图形的变形.144.5 判断满行及消行 .144.6 监听 .164.6.1 键盘监听 .164.6.2 定时器监听 .165 运行及测试 .175.1 运行初始

7、状态.175.2 游戏运行状态 .185.3 游戏结束状态 .19结束语 .20致 谢 .21参 考 文 献 .2211 1 绪论绪论1.11.1 游戏开发意义游戏开发意义随着经济的快速发展,计算机的地位在人们的生活中已日益突出,基于各种操作系统的娱乐游戏也越来越多、越来越大众化,成为人们生活中必不可少的一部分。而随着人们生活品质的提高,电脑游戏也越来越多元化,俄罗斯方块就是其中一种。俄罗斯方块游戏操作简单方便,也具有一定的思考力,能够引发人的思维及兴趣,老少皆宜,是一款不错的小游戏。该游戏的设计遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对游

8、戏进行了测试,整个开发过程贯穿软件工程的知识体系。它的实现是由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制变形、左移、右移和向下加速操作,(控制键的实现是由键盘的方向键的事件处理实现) 。然后程序根据这七种方块堆叠成各种不同的模型,其功能包括开始游戏、暂停游戏、退出游戏等。此次设计在Microsoft Windows XP 系统下,以 Java 为开发语言,在eclipse 开发平台上进行游戏的设计与实践。1.2JAVA1.2JAVA 语言概述语言概述1.2.1java 技术简介

9、Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaSE, JavaEE, JavaME)的总称。Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口(Application Programming Interface、简称 API)构成。Java 应用编程接口为 Java 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用

10、程序就可运行。现在 Java 平台已经嵌入了几乎所有的操作系统。这样 Java 程序可以只编译一次,就可以在各种系统中运行。2Java 分为三个体系 JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java 平台企业版),JavaME(Java 2 Platform Micro Edition,java 平台微型版)。1.2.2java 体系结构 用 Java 编程语言编写源代码,把它编译成 Java class 文件,然后再在 Java虚拟机中运行 cla

11、ss 文件。Java 虚拟机和 Java API 一起组成了一个“平台”(从版本 1.2 开始,称为Java 2 平台),所有 Java 程序都在这上面编译。Java 程序可以在不同的计算机上运行,这是因为 Java 平台自己可以用软件实现。Java 的执行方式不是编译执行而是解释执行,不同平台上面相同的源代码编译成符合 Java 规范的相同的二进制字节码,然后再交给支持各自平台的虚拟机去解释执行,先编译,后解释,再执行三步走的方式使得 Java 实现了一次编写,到处运行,如果 Java 应用使用的是 100标准 Java API 并且没有直接调用本地方法,那就可以不加修改地运用在多种平台上,

12、这样的平台无关性使得在异构的网络环境或者嵌入式方面的应用更方便和现实。Java 的网络移动性带来了一种全新的软件模式,在分布式处理模式的基础之上,可以将软件和数据通过网络传送到客户端去,这样确保了客户端有必备的软件来浏览和操纵通过网络传输的数据,Java 体系结构支持把单一的执行文件切割成小的二进制字节码文件 Class 文件,而这些文件可以按照应用的需要动态连接、动态扩展。Java 体系结构对安全性的支持主要是通过 Java 语言本身安全性、虚拟机的类加载器和安全管理器以及 Java 提供的安全 API 几个方面来实现:防止恶意程序的攻击,程序不能破坏用户计算机环境;防止入侵,程序不能获取主

13、机或所在内网的保密信息;鉴别,验证程序提供者和使用者的身份;加密,对传输交换的数据进行加密,或者给持久化的数据进行加密;验证,对操作设置规则并且进行验证。1.2.3java 语言优势1、Java 语言是简单的。Java 语言的语法与 C 语言和 C+语言很接近,使得大多数程序员很容易学习3和使用 Java。另一方面,Java 丢弃了 C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。 2、Java 语言是一个面向对象的。Java 语言提供类、接口和继承等原语,为

14、了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements) 。Java 语言全面支持动态绑定,而 C+ 语言只对虚函数使用动态绑定。总之,Java 语言是一个纯的面向对象程序设计语言。 3、Java 语言是健壮的。Java 的强类型机制、异常处理、废料的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。 4、Java 语言是安全的。Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了 Java 语言具有的许多安全

15、特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader) ,如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。 5、Java 语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用Java 实现的,Java 的运行环境是用 ANSI C 实现的。 6、Java 是高性能的。与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着

16、JIT(Just-In-Time)编译器技术的发展越来越接近于 C+。 7、Java 语言是多线程的。Java 具有多线程机制,这使得应用程序能够并行地执行。它的同步机制也保证了对共享数据的共享操作,而且线程具有优先级的机制,有助于分别使用不同线程完成特定行为,也提高了交互的实时响应能力。Java 的多线程技术使网上实时交互实现很容易,从而为解决网上大数量的客户访问提供了技术基础。41.31.3 JAVAJAVA JDKJDK 的安装以及环境变量的设置的安装以及环境变量的设置JDK(Java Development Kit)是一切 java 应用程序的基础,可以说,所有的 java 程序都是构

17、建在这个基础之上的。配置步骤:1.先下载并安装 JDK,本论文使用的版本是 JDK 1.7.0;2.安装完成后,右击“我的电脑” ,选择“属性” ;3.选择“高级”选项卡,点击“环境变量” ;4.在“系统变量”中,设置 3 项属性:JAVA_HOME,PATH,CLASSPATH(不区分大小写),若已存在则点击“编辑” ,不存在则“新建” ; 5.JAVA_HOME 指明 JDK 安装路径,就是刚才安装时所选择的路径D:javajdk1.7.0,此路径下包括 lib,bin,jre 等文件夹(此变量最好设置,因为以后运行 tomcat,eclipse 等都需要依靠此变量);Path 使得系统可

18、以在任何路径下识别 java 命令,设为:%JAVA_HOME%bin;%JAVA_HOME%jrebinCLASSPATH 为 java 加载类(classorlib)路径,只有类在 classpath 中,java 命令才能识别,设为:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar(要加.表示当前路径)%JAVA_HOME%就是引用前面指定的 JAVA_HOME;6.“开始”-;“运行”,键入“cmd”;7.键入命令“java-version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;几个 java 环境变量的含义

19、和 linux 下的配置方法:通常,我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用该变量以方便设置。PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令5(javac),执行命令(java)和一些工具命令(java

20、doc,jdb 等)都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。CLASSPATH:也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含.jar 文件。Java 查找类时会把这个.jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jrelibrt.jar(Linux:jre/lib/rt.jar)包含在CLASSPATH 中。PATH 和 CLASSPATH 都指定路径列表,列表中的各项(即各个路径)之间使用分隔符分隔。在 Windows 下,分隔符是分

21、号(;),而在 Linux 下,分隔符是冒号(:)。2 可行性研究可行性研究2.12.1 设计目的设计目的通过研究俄罗斯方块所具备的能力及实现的方法,确定主体机构。利用现阶段我所能达到的能力,以最简洁,最容易的办法,边开发边测试边修改,完成俄罗斯方块的开发,从而使自己更好的熟悉并理解应用系统的开发。培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来的实际工作打下坚实的基础。 2.2 可行性研究可行性研究技术可行性:技术可行性:开发本游戏的编程语言有多种,如:VC ,VB,JAVA 等,但考虑到自身对语言的掌握程度和编写程序的困难度,选择 JAVA 语言进行游戏的开发。 经济可行

22、性经济可行性:本游戏的开发旨在完成毕业设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行相应 JAVA 程序的电脑便可,所以不用考虑到经济问题。社会可行性社会可行性:本游戏的开发主要为了完成毕业设计,开发的主体是个人,仅供个人平常娱乐,不存在法律上的侵权行为,也不会为社会造成影响,这方面是完全可行的。63 需求分析和概要设计需求分析和概要设计一款游戏项目的确立是建立在各种各样的需求上面,这种需求往往来自于玩家的实际需求或者处于公司自身发展和实力的情况,其中玩家的实际需求也就是市场需求最为重要。3.3. 1 1 游戏功能需求游戏功能

23、需求28 种状态的方块随机产生,自由下落,落下时玩家可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速) 、向左、向右移动。以便以玩家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加 10 分,若由存在空格的方块填满整个窗口,则游戏失败。并且可通过点击菜单栏中相应的菜单项,实现游戏的开始,暂停,结束以及游戏帮助等功能。3.23.2 需求分析原则需求分析原则 需求分析中的缺陷将给项目成功带来极大风险,这里的“成功”是指推出的游戏能以合理的定价、及时地在功能、质量上完全满足大部分玩家的期望。 不适当的需求过程引起的一些风险

24、: 1)不受玩家所喜爱2)玩家需求的不断增加:在开发过程中不断补充需求,项目就越变越庞大以至超过计划和预算,所以开发者要把需求变更范围控制到最小,即一开始对游戏定位、范围、目标和成功标准给予明确说明。3)模棱两可的需求:模棱两可是该游戏功能说明中最为可怕的问题。它的一层含义是指诸多玩家对需求说明产生了不同的理解;另一层含义是指单个玩家能用不止一个方式来解释某个功能和需求说明。4)不必要的特性和功能:“画蛇添足”是指开发人员力图增加一些“玩家欣赏”但需求规格说明中并未涉及的新功能。73.33.3 概要设计概要设计3.3.1 模型层(Model)功能模块图设计数组方块障碍物随机产生方块确定形状位置

25、图 3-1 模型层功能模块设计图83.3.2 游戏结构流程图开始游戏随机产生方块是否有键按下判断键值并执行相应动作是否是否满行是否输了?是否消行并加分自由下落结束否否是图 3-2 游戏结构流程图94 游戏的详细设计游戏的详细设计4.14.1 图形的数据结构图形的数据结构本游戏是用一个三维数组 int shapes = new int;作为存储方块的数据结构来保存方块的 28 种状态的。方块的形状 第一组代表方块类型有 S、Z、L、J、I、O、T 7 种 第二组 代表旋转几次 第三四组为 方块矩阵 private final int shapes = new int / 0, 0, 0, 0,

26、1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 ,/ 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 ,/旋转一次变为 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 ,/旋转两次变为 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 ,/三次变为/ s s 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,/S S 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0,

27、 0, 0, 0 ,/旋转一次变为 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,/旋转两次变为 S S 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ,/三次变为/ z 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 1, 0, 0, 1, 1,

28、0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ,/ j 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 , 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,/ o 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 1, 1,

29、0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,/ l 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 , 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 , 0, 0, 1, 0, 1, 1, 1,

30、0, 0, 0, 0, 0, 0, 0, 0, 0 ,/ t 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,10 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 , 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ; 方块如下图所示:图 4-1 数据结构图4.24.2 游戏界面游戏界面具体代码如下:/ 画围墙:将游戏界面的第一行 mapi21 ,第一列 ma

31、p0j 跟 第12 列 map11j作为游戏边界。 public void drawwall() for (i = 0; i 12; i+) mapi21 = 2; for (j = 0; j 22; j+) map11j = 2; map0j = 2; / 当游戏重新开始时,游戏地图清空初始化 public void newmap() for (i = 0; i 12; i+) for (j = 0; j 22; j+) mapij = 0; 11 / 生成新方块的方法public void newblock() blockType = (int) (Math.random() * 1000

32、) % 7;turnState = (int) (Math.random() * 1000) % 4;x = 4;y = 0;if (gameover(x, y) = 1) pause(true);/JOptionPane.showMessageDialog(this.getParent(), GAME OVER);switch (JOptionPane.showConfirmDialog(null, GAME OVERn 开始新游戏?, Game Over, JOptionPane.YES_NO_OPTION)case JOptionPane.YES_OPTION:newmap();draw

33、wall();score = 0;pause(false);break;default:System.exit(0);/ 初始化构造方法 Tetrisblok() newblock(); newmap(); drawwall(); Timer timer = new Timer(1000, new TimerListener();12 timer.start(); / 画方块的的方法 public void paintComponent(Graphics g) super.paintComponent(g); / 画当前方块 for (j = 0; j 16; j+) if (shapesbl

34、ockTypeturnStatej = 1) g.fillRect(j % 4 + x + 1) * 10, (j / 4 + y) * 10, 10, 10); / 画已经固定的方块 for (j = 0; j 22; j+) for (i = 0; i 12; i+) if (mapij = 1) g.fillRect(i * 10, j * 10, 10, 10); if (mapij = 2) g.drawRect(i * 10, j * 10, 10, 10); g.drawString(score= + score, 125, 10); g.drawString(变形, 125,

35、130); g.drawString(左移, 125, 150); g.drawString(右移, 125, 170); g.drawString(加速, 125, 190);13 4.34.3 图形的移动图形的移动 图形类 Shape 保存了自己的位置信息,用 x 表示图形到左边界的距离,y 表示图形到上边界的距离,图形移动就是改变 x 和 y 的值。向下移动:y+1,向左移动:x-1;向右移动 x+1;具体代码如下:/ 左移的方法 public void left() if (blow(x - 1, y, blockType, turnState) = 1) x = x - 1; ; r

36、epaint(); / 右移的方法 public void right() if (blow(x + 1, y, blockType, turnState) = 1) x = x + 1; ; repaint(); / 下落的方法 public void down() if (blow(x, y + 1, blockType, turnState) = 1) y = y + 1; delline(); ;14 if (blow(x, y + 1, blockType, turnState) = 0) add(x, y, blockType, turnState); newblock(); de

37、lline(); ; repaint();4.44.4 图形的变形图形的变形具体代码如下:/ 旋转的方法public void turn() int tempturnState = turnState; turnState = (turnState + 1) % 4; if (blow(x, y, blockType, turnState) = 1) if (blow(x, y, blockType, turnState) = 0) turnState = tempturnState; repaint(); 4.54.5 判断满行及消行判断满行及消行对该行通过循环语句,依次判断各方块为黑色,还

38、是白色,若为黑色(即mapab=1),则 c += 1,行循环结束再用 if 判定 c ,若 c = 10 ,则分数score += 10 ,且将上面的方块依次下移一行。具体代码如下:public void delline() int c = 0; for (int b = 0; b 22; b+) 15 for (int a = 0; a 0; d-) for (int e = 0; e 11; e+) maped = maped - 1; c = 0; / 是否合法的方法:当方块下落碰到地图上有方块的地方,或者地图边缘时,return 0;否则 return 1;public int bl

39、ow(int x, int y, int blockType, int turnState) for (int a = 0; a 4; a+) for (int b = 0; b 4; b+) if (shapesblockTypeturnStatea * 4 + b = 1) & (mapx+ b + 1y + a = 1)| (shapesblockTypeturnStatea * 4 + b = 1) & (map x+ b + 1y + a = 2) return 0;16return 1;4.64.6 监听监听4.6.1 键盘监听具体代码如下: / 键盘监听 public void

40、keyPressed(KeyEvent e) switch (e.getKeyCode() case KeyEvent.VK_DOWN: down(); break; case KeyEvent.VK_UP: turn(); break; case KeyEvent.VK_RIGHT: right(); break; case KeyEvent.VK_LEFT: left(); break; case KeyEvent.VK_SPACE: togglePauseAndPlay(); break; 4.6.2 定时器监听具体代码如下:/ 定时器监听17 class TimerListener i

41、mplements ActionListener public void actionPerformed(ActionEvent e) repaint(); if (blow(x, y + 1, blockType, turnState) = 1) y = y + 1; delline(); ; if (blow(x, y + 1, blockType, turnState) = 0) if (flag = 1) add(x, y, blockType, turnState); delline(); newblock(); flag = 0; flag = 1; ; 5 运行及测试运行及测试5

42、.15.1 运行初始状态运行初始状态 刚进入游戏时,如图 5-1 所示。此时,分数初始化为 0,游戏当前设置为每消一行增加 10 分,根据定时器监听,按一定速度下落方块。用户可使用键盘左移键、右移键、上移键和下移键,分别进行左移、右移、旋转和下落操作。18图 5-1 游戏初始状态5.25.2 游戏运行状态游戏运行状态 游戏运行状态,如图 5-2 所示图 5-2 运行状态游戏下拉菜单,如果 5-3 所示19图 5-3 游戏下拉菜单5.35.3 游戏游戏结束设计结束设计 当下落的方块跟最上面的障碍物接触时,游戏结束。跳出如下 5-4 界面。 图 5-4 游戏结束界面20结束语结束语本文介绍了俄罗斯

43、方块这款大众化游戏的设计思路及其编程实现。重点介绍各功能模块的设计原理和数据结构的实现。通过本论文程序的编写和开发,进一步的提高了自己的基本编程能力和游戏开发技巧,熟悉并了解 JAVA 程序中有关对象、数组、时钟监听、键盘监听等方面的知识。通过本程序的开发,让我对 JAVA 面对对象有了一个更深刻的了解。本文的程序设计借鉴了参考书籍和互联网上相关程序的设计思想,在此对相关网站的提供者表示衷心的感谢。由于本人实践经验较少,在知识和经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促,因此本论文许多地方仍有一些缺陷。而且每个问题的解决办法不止一种,当然本游戏开发亦是如此,我们可以采用各种

44、不同的语言开发本游戏,进行进一步对比,从而让我们更好的了解并掌握各种语言编程的优缺点。 21 致致 谢谢在论文即将完成之际,我们在此向所有关心及帮助我们的老师和同学们致以最真诚的感谢。在这段时间里,我学到了很多东西,好多在学校所学的理论知识都运用到了本游戏的开发之中,从零零散散的东西一点点连接成一个系统知识。首先我要感谢我的指导老师 XXX 老师,他严谨求实的教学态度让我受益匪浅,在选题到具体游戏的开发,都给予了我很多大的帮助,期间她无微不至的教导也让我收获颇丰,所以再次向我的老师表示真诚的谢意!其次要感谢我的各位任课老师的谆谆教导,让我打好了专业知识的基础,在应用上少走弯路。最后要感谢我的家

45、人,他们默默无闻的操劳对我的论文完成给予了很大的支持。没有他们的支持,也就没有我今天的成绩。22 参参 考考 文文 献献1 孙卫琴,飞思科技产品研发中心.Java 面向对象编程.北京:电子工业出版社,2006.72 孟宇坤.区域道路货运市场信息平台的系统分析与设计以徐州市为例.学位论文.北京交通大学 20063 赵怀瑾.基于 BS 模式图象监控系统的研究和应用. 学位论文华北电力大学(保定)20054 BruceEckel.JAVA 编程思想. 机械工业出版社,2008 年 10 月:1-3785 杨思雄 麦凯翔. 疯狂 Java 实战演义.电子工业出版社, 2010年 6 月6 Bruce Eckel.Think in Java.机械工业出版社7 邦杰,彻底研究 java.北京:电子工业出版社,2002 年8 OReilly & Associates, Inc Java Cookbookin the United States or Canada9 张桂珠 刘丽 陈爱国 Java 面向对象程序设计(第 2 版)北京邮电大学出版社10毕广吉.Java 程序设计实例教程M. 北京:冶金工业出版社,2007 年11栾阳. Java 技术在图像处理领域的应用研究.学术期刊. 电脑学习 2009 年 5 期

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!