数字组合小游戏的开发与设计

人类社会是一个不断进步的整体,现今社会,人们的生活已经不再局限于生存,而在于生活。而电子游戏就是享受生活的一种方式,它用自身独特的魅力博得了许多人的欢心。
本设计的是通过采用JAVA语言,以为Eclipse为开发工具设计一款数字组合游戏。在连连看小游

  引言

  现在的科技发展迅速,也正因此,人们的生活水平提高,手机、电脑这些设备也已经成为不再遥不可及的物品,这些通讯设备的功能也不再局限于通讯,所以人们希望可以通过这些通讯设备在工作、学习之余可以进行娱乐来放松。
  在当今的社会情况下,大多数人的工作压力与日俱增,生活节奏也是越来越快,很大一部分人群没有时间享受生活。游戏正式一个好选择,享受游戏,沉溺于其中的快感,可以让我们随时随地,暂时性地免于沉重的日常生活。再来说说游戏的本身,游戏的主界面应该尽可能地美丽,愉快,以提高人们玩耍的兴致。游戏控制功能模块应该简单易懂,操作方便,这样才能给玩家舒适、优越的游戏环境和游戏体验。目前在市场上,游戏不断涌现,随着电脑硬件系统的不断完善,未来的游戏将更加智能化,更具艺术性,更人性化,具有高性能的硬件支持,游戏功能更强大的引擎,控制功能更加完整,带来更丰富的娱乐和体验,一个很好的游戏带给人们生活愉快,美丽的艺术享受和锤子教育效果的时尚感觉,如果不够高品质的游戏,那么市场必然会差游戏是可以说,对于青少年来说,游戏编程的人有更深入的了解和掌握,谁拥有游戏的指导权。因此,为了迎合众多用户的需求,本人制作了一款适具有很强的娱乐性的数字组合小游戏,这款小游戏是基于windows操作系统的,可以让人们能真正享受游戏,暂时忘却工作带来的压力。
  连连看游戏,相信大家对其也是并不陌生,其规则简单易懂,当点击一对相同图案,并且这两张相同的图片可以通过某种方式连接起来,这样就可以消除了;在连连看游戏的基础上,我们加以改良,把两张相同图片的消除改成两张图片上的数字相加得到一个事先规定的数字再消除。因此设计一款windows平台下的简洁,富有娱乐性的数字组合小游戏,让人们在工作学习之余得到休闲放松。并通过这个程序将自己大学所学的专业知识和其他方面的知识融入到实际应用当中。
  通过此次设计,可以记住一部分自己所用的类库,可以更加熟练运用自己学习的的语法,可以锻炼自己的逻辑思维和耐心,并认识到自己的不足之处,可以大致了解编写制作一款游戏软件的难度,以及制作游戏软件的大致流程,游戏设计本身又是如何从面向对象的分析到面向对象的设计,最后再到编程,这样可以为以后的就业打下基础。
  为了人们可以从免于工作压力的重负,于是在这里开发制作一款适合大多数阶层人士的连连看版的数字组合小游戏,并依次撰写了该篇文章,本篇文章分为六个章节,首先第一个章节是绪论,介绍了本款程序的背景及研究该程序的意义,概括了本文研究的主要内容;第二章是系统开发的所用的技术和软件的介绍,介绍了开发制造本款游戏的所用到的相关工具;第三章是系统需求分析,简要地介绍了设计的游戏所拥有的功能,并对系统的性能进行大致分析,最后对程序的可行性进行分析,;第四章是游戏设计,从设计思想到设计原则及系统组成结构一一做了介绍,通过对系统详细设计的介绍让大家更多的了解这个系统的实现过程;第五章是游戏测试,展示运行后的效果以及操作时的情况,并告知了初时的一些想法和后来对应的策略,还有就是游戏中存在的不足以及改进方法;最后一章则是自我的总结。

  1游戏开发工具和技术介绍

  1.1 Eclipse软件的简介

  Eclipse是一个开放源代码的、基于Java的可扩展开发平台。它具有很强大的功能,这也正是许多Java程序员选择它的原因,因为它本身就包括了java语言的开发工具,也就是我们所熟知的JDK。
  Eclipse这款软件走过了很长的一段路,1990年代,IBM公司的Visual Age for Java是早期的基于java的开发环境之一,这也是eclipse的前身,在1998年,IBM公司终于开始了开发工具环境的历程,而这一款软件,也就是Eclipse,后来它在2001年贡献给开源社区,2004年,在IBM公司的大力推进下,Eclipse终于获得了它现在在java编程界应有的地位,现在的它由非营利软件供应商联盟Eclipse基金会来管理。

  1.2 JAVA语言介绍

  Java,是由Sun Microsystems公司于1995年5月23推出的Java程序设计语言和Java平台的总称。它拥有许多特点:
  (1)可移植性,就是说Java的适应性很强,用其编写的程序能运行在不同的平台上。Java引进了虚拟机概念,也就是JVM,程序的代码不会变,只是运行的平台改变了,不同的操作系统对应不同的java虚拟机,可以依此来转换到该可以在操作系统上运行的java代码,这样编写的java代码就可以在各大平台上正常运行。
  (2)面向对象性,Java编程语言面向的是对象而非过程,c语言编写的程序需要按顺序一步一步地走,修改也是很费功夫。而Java却不同,正因为它是面向对象的,所以在编程时,会更贴近现实社会,对象具有的属性都可以编写,由于封装和继承的特性,只需编写一次程序代码,然后通过对封装和继承的代码反复利用就可以达到修改程序的目的。
  (3)安全性,JAVA中取消了强大但危险的指针,用了“引用”这一概念来代替指针,“引用”是存放在栈内存中的,也就是new出来的对象,它存放了类的地址,需要使用类中私有的元素,则需要用“引用”来调用类中的公共方法,这样就突出了安全性。第四,健壮性。在编译和运行代码时,Java可以有效地检查出错误,这样就可以让许多开发早期出现的错误可以被类型检查发现,方便程序员及时修改。
  Java的诞生是对传统计算机编程语言的一次巨大革新,目前已被广泛应用于编程。

  2系统需求分析

  2.1需求分析

  2.1.1功能需求分析
  需求分析是阐述了程序必须要实现的功能,并对程序的性能和可行性进行分析。现针对数字组合游戏分别对各个功能进行详细的调研和分析,并依照调研和分析的结果总结出如下的需求信息:
  (1)整体界面模块
  运行后即可直接开始游戏,游戏界面拥有一张令人舒心的背景图片,并且包含了“退出游戏”、“重玩游戏”和“关闭音乐”三大模块。
  (2)游戏模块
  a游戏分为三个关卡:
  第一关:相加得9即可消除两张图片,并得到1分。
  第二关:相加得10即可消除两张图片,并得到1分。
  第三关:相加得11即可消除两张图片,并得到1分。
  b额外奖励:
  星星图片可以与任意得图片相加消除,并得到2分。
  c胜利条件:
  得分到达30分即可进入下一个关卡,通过第三关即可通关游戏。
  (3)图片模块
  图片模块是用来管理程序所用图片的。包括图片的来源,图片的排列顺序,图片的显示和如何消除等。
  (4)音乐模块
  音乐模块是用来管理背景音乐的。包括下拉菜单更改音乐以及用“关闭音乐”按钮关闭音乐。
  2.1.2系统性能要求
  (1)实时性
  本应用为java的窗口游戏,因此对用户的操作必须做出及时响应,用户点击界面,界面就应该做出相应的反应,否则本游戏就失去了意义。
  (2)易操性
  本款单机游戏的特点就是操作简单,哪怕用户在不知道规则的情况下也能够大致上摸索着玩,并且玩过几遍之后,就知道了游戏的规则。
  (3)时间特性
  系统响应所需要的时间有绝对的要求,也就是要把响应时间控制在人的感觉和视觉范围内,不然游戏就失去了可玩性,关于这一点,程序能够满足用户要求。
  (4)内存占用少
  内存占用率控制在一定的范围内,不能因为运行该游戏导致电脑无法运行,对于不同的硬件配置要自动调整。

  2.2可行性分析

  (1)技术可行性分析
  技术可行性分析是分析现在科技所拥有的技术条件能否顺利完成程序的开发制造工作,从现代社会已有的技术来看,JDK中的类库完全可以满足数字组合游戏的需求,JVM可以兼容windows操作系统,Eclipse软件可以作为java的平台,剩下的就只有编写代码这一块了。所以从技术上来讲,现在拥有的技术完全可以设计出来该款连连看类型的数字组合游戏。
  (2)经济可行性分析
  设计这样一款游戏并不需要投入什么人力物力,经济方面也不需要资金的投入,因为所需要的软件都是免费的,所以从经济这点上来说,完全是可行的。
  (3)社会可行性分析
  设计这样一款游戏并不会对现在的社会造成什么影响,反而设计的初衷就在于让人们从繁忙的生活中拥有一点休闲自由的时间,所以从社会角度来看,该款设计也是可行的。

  3游戏设计

  3.1游戏设计目标

  系统功能划分通过客户需求分析完成设计功能结构图包含功能模块,包括:
  (1)界面设计模块
  (2)游戏关卡模块
  (3)成绩显示模块
  (4)鼠标点击消除模块
  游戏功能结构图4-1为:
数字组合小游戏的开发与设计
  图4-1功能结构图
  各自的功能如下所述:
  (1)主界面包括游戏界面初始化及图片随机生成模块:生成背景图并按固定行列数目随机生成不同的数字图片。
  (2)游戏关卡模块:依据得到的不同分数进入不同的关卡,从第一关开始,得到对应的分数即可进入下一关。
  (3)成绩模块:依据所消除的图片对数进行加分,每一关都有各自的分数,互相不干涉。
  (4)音乐选择模块:依据音乐下拉框选择用不同的音频文件,并可以关闭音乐。
  (5)鼠标点击模块:判断玩家选择的两张图片方块是否可以通过程序规定的方式相连,并判断玩家点击的两个方块相加所得数值能否满足程序规定的数值。
  根据本文的研究内容和实际的需求,在Eclipse平台上使用JAVA语言对游戏进行了设计实现。下面对系统进行简单介绍。

  3.2游戏的界面

  对于数字组合游戏的界面,可以把它看作一个N行N列的矩阵,该矩阵可以划分为N*N个小方块,这样就变成是由若干个小方块构成的界面,每一个小方块中可以放置随机的数字图片,我们将这些数字图片称为数字图片方块,这些数字图片方块随机并且零散地排列在地图矩阵上不同的位置。如图4-2所示。
  图4-2游戏界面排版图
  如游戏界面排版图所示,整个程序游戏区域可以看成是一个有坐标的平面,平面上随机排列着标有数字的小方块图片,图片方块上写着0-9的各个数字。经过之前的描述和分析后,可以把游戏界面定义一个大小,这一点可以用画板Jpanel解决。之后则是定义单个方块的高、宽和每个方块的间隔大小,还有就是游戏界面的画板的排版问题,最后决定分为三个大部分:游戏区、控制按钮区和得分区。
  3.2.1游戏区
  (1)作用:把所有的数字图片的方块放入游戏区中,之后该游戏则是由使用者在该分区进行操作以达到游戏的效果,设置单个方块的高和宽以及每个方块间的间隔为10,在设置后加载背景图片,并编写一个方法随机生成布局图片,即把游戏区划分为一个10行10列的矩阵,每个矩阵中都可以放一个数字图片的方块,将图片方块随机放在矩阵的每个位置,部分设置:
  Private final int fkgao=45,fkkuan=45,liesu=10,hsu=10,jiange=1;
  Private final cfsu=9,txuansu=10,tzongsu=10;
  ImageIcon icon=new javax.swing.ImageIcon(getClass().getResource(filename+"game_bg.jpg"));
  (2)设计:首先使用JFrame定义一个窗体,窗体拥有大小的属性,其次需要在窗体上使用JPanel定义一个画板,画板拥有其大小,位置等属性,用来放置各种游戏所需要的物件,之后则是在该画板上选择一个位置定义一个游戏区,游戏区由一个矩阵组成,矩阵上要分为若干个小方块来存放数字图片,并把每一个小方块设置成按钮以进行操作,最后则是添加一个鼠标监听事件,可以让用户在某个按钮上按下时可以发生对应的动作事件,这个鼠标监听事件在别的区块中也是可以用到的,对应的也要有一个事件监听器,用来处理单击鼠标时触发的事件。
  3.2.2功能按钮区
  (1)作用:用来放置操控游戏的按钮,之后玩家则是通过这些功能按钮来对游戏进行控制,一共定义了三个按钮,分别为“退出游戏”、“重玩游戏”和“关闭音乐”,并且在“关闭音乐”的按钮下定义了一个音乐下拉框,在该文本下拉框中键入之后导入的背景音乐的名字,这样就可以借由选择下拉框中的提前输入的音乐名字来设置不同音乐,部分设置:
  Private Jbutton JbuttonReset();
  Private Jbutton JbuttonExit();
  Private JButton JbuttonMusic();
  Private JComboBox jc;
  (2)设计:首先是要在画板上确定功能按钮区的位置,之后确定每个功能按钮的位置、大小、内部字体颜色等属性,最后则是定义各个按钮的效果,每个功能按钮都定义其对应的方法,在方法中实现各个功能应当实现的功能:当点击“退出游戏”按钮时,程序执行关闭窗口的命令,效果与点击窗口右上角的“×”一样;当点击“重玩按钮”时,程序执行初始化的方法和初始化变量的方法以达到重玩的效果;当点击下拉文本框中音乐的名字时,程序会执行定义的监听下拉复选框的方法,在该方法中,之前下拉文本框中各个键入的音乐名字顺序已被记录为一个数值,并将这个数值赋给一个int类型的变量,接着运用switch循环,点击音乐名字时,会将对应的变量的值传给switch循环来播放与名字相对应的音乐。
  3.2.3得分区
  (1)作用:用来记录玩家玩游戏时的得分情况,并且作为判断是否能进入下一关的一依据,部分设置:
  Private JLabel labelScore;//添加一个标签用来记录得分
  Private int score=0;//初始化后存放总得分
  Private int addScore;//存放每次消除加的分数
  (2)设计:在画板上挑选位置添加一个标签供输出得分所用,定义这个标签在画板上的位置和大小,设置输出的得分的字体和大小字号,并定义一个int类型的变量score来存放总得分,将其初始化,赋值为0,又定义一个同为int类型的变量addsocre来存放每次消除图片方块时加的分数,最后的总得分为初始化的score加上每次消除加的分数addscore,并将这个总得分输出在定义的标签上。

  3.3游戏初始化

  完成总体布局后,需要对数据进行初始化。即需要对界面,变量,资源等进行初始化,因此将该功能的实现封装在shuzizuhe()方法里面。
  3.3.1初始化变量
  在初始化变量的方法中,首先定义一个boolean类型的变量onefou,赋值为false,用处是识别是否有一个数字图片按钮已经被选中,如果有选中的了,下一次点击就判断是否可以消除,又定义一个int类型的whichone,用来表示第一个被选中的按钮的索引,用处是标记第一次选中的是哪个按钮,第二次再点击的时候就可以知道是哪两个按钮进行判断能否消除。
  3.3.2初始化界面
  在初始化界面的方法中,就仅仅是总体界面的显示效果,首先是把底盘设置成为frame的内容面板,之后则是设置了点击窗体右上角的“×”可以关闭程序,最后则是设置程序的标题名字、位置、大小,总的来说,这个方法就是制作出一个属于该游戏的界面。
  3.3.3初始化资源
  在初始化资源的方法中,定义了一个tuhao的变量来接收数字图片按钮上的数字,即程序可以通过此变量知道玩家选择的图片上的数字是多少,并在这之后判断点击的图片是否会符合消去的规则,如果符合,则加上对应的分数,如果不符合,则会调用洗牌方法,还原选择的两个数字方块,让玩家重新选择新的两个数字方块,以此类推,就可以达到只有选择符合规定的两个数字方块才能加分,否则不加分,最后则是输出得分。
  3.3.4总方法
  就是该游戏的总方法,上面提过的初始化变量的方法、初始化界面的方法和初始化资源的方法都封装在这个shuzhizuhe的总方法中,程序的入口也是通过调用这个总方法来达到运行程序的目的。
  public shuzizuhe(){
  cusihuabianliang();
  cusihuajiemian();
  cusihua();}

  3.4图案方块的连接判断

  1.对于玩家先后选择的两个数字方块按钮的消除,两个方块按钮需要符合以下条件:
  (1)玩家选中的两个方块上的数值相加符合程序之前规定的数值。
  (2)玩家选中的两个方块可以依据一定连线规则相连,本程序规定用至多三根至少一根与坐标轴相垂直的线段相连。
  (3)连接两个方块的直线至多只能有两个连接这些直线线段的点。
  2.进行分析后,两个方块的连接方式可以分成以下3种:
  (1)由一条直线直接相连的方式。
  (2)由有一个折点的两条垂直直线线段相连。
  (3)由有两个折点的三条垂直直线线段相连.。
  a没有连接点的连接方式
  在这种连接的方式中,需要满足玩家选择的两个数字方块再同一行或者同一列上这个前提,并且选中的两个方块之间不存在任何其他的数字方块。
  b一个连接点的连接方式
  在这种连接的方式中,玩家选中的两个数字方块必定不在同一行且不在同一列上,既然有一个连接点,就说明有两条直线线段,直线线段是从所选的两个数字方块上出发的,最终汇聚在同一个连接点上,也就是说,这个连接点必定满足与其中一个数字方块同行或者同列。
  c两个连接点的连接方式
  在这种连接方式中,玩家选中的两个数字方块可同行,也可同列,也可不同行也不同列,是最为复杂的一种情况。但可以知道既然有两个连接点,就必定有三条直线线段,并依据此可以推断出其中两条直线线段必定相互垂直,而最后一条直线线段则是需要连通之前两条互相平行的直线线段,并且第三条直线线段不能穿过第三个作为障碍物的数字方块,依次,可以分为下列的情况:
  ①选中的两个数字方块在同一行或者同一列,并且在该行或者该列上,被选中的两个数字方块间存在第三个作为阻碍物的数字方块。
  ②选中的两图案方块不在既不同行也不同列,从选中的两个数字方块上引出两根互相平行的直线线段,第三根直线线段则是从选中的两个数字方块中间将先前的两根直线线段连接起来,但第三根直线线段不会碰到障碍物数字方块。
  经过之前的分析后,可以得出结论,判断选中的两个数字方块能否相连要按照顺序,首先判断没有连接点的连接方式,可否使得两数字方块相连,若不能,则判断有一个连接点的方式可否做到,若还是不行,则判断有两个连接点的方式可否做到,若都不满足,则两个被选定的数字方块无法相连,具体情况如下图4-3所示。
数字组合小游戏的开发与设计
  图4-3连线规则图
  连线流程图如图4-4所示。
  图4-4连线流程图
  3.4.1得分规则
  根据图4-3所示的流程图,可以对选定的两个方块(分别在(x1,y1)以及(x2,y2)两个区域位置,其中x,y分别代表行与列的概念)是否可以抵消作出判断,这里我设计了两个关于消分的规则的方法,第一个方法中的规则是用于刚开始生成矩阵的时候的判断,这个方法是不加分的,防止矩阵刚生成就产生积分,每一个关卡都需要提前判断;第二个方法是实际操作的时候判断是否消除加分的,即每一关的加分,为什么加分,怎么加分,定义后的方法内部决定只要满足连线规则并且可以消除就加1分,否则不加分,如果第一次或者第二次选择的图片为星星并满足连线规则,则可以消去并加2分,在第二个方法中也编写了输出玩家所选数字图片上的数字的代码,让程序显得更加直观。
  public boolean samefou(int a,int b)//消分规则方法1
  public boolean samefou(int a,int b,boolean isAddScore)//消分规则方法2
  3.4.2相连规则
  1.概述:相连规则是本程序至关重要的一部分,决定了游戏能否正常运行,对比于连连看游戏,采用同样的方法判定选中的两张图片能否相连,首先会获取4个数值,分别表示点击的图片左上右下四个方向跟中心点相连空着的放格数,接着依照顺序作出如下判断;
  (1)如果小于0则表示和边界相通,如果a和b在某个方向上的方格数都小于0,则表示点击的两张图片a和b相连通;
  (2)之后则是分别判断是否为同行或者同列的情况,在同行情况下,首先判定是否同行且相邻,如果是,则相连,如果不是,判断能否通过外侧上端或者下端相连;同列情况和同行情况类似;
  (3)接下来就是不同行也不同列的情况,首先判断可否通过一个拐点相连,若一个拐点的情况都不满足,则判断可否通过两个拐点相连,若上述都不满足,则无法相连。
  2.设计:定义一个xiaofou()的方法,形式参数列表传递的是两个int类型的变量a和b来表示玩家先后点击的两张数字图片,首先获取a的行、a的列、b的行、b的列;然后将两个点的上下左右四个方向与中心点相连的空着的方格数赋值放在a_cansu[]和b_cansu[]中,两个数组中各有四个值,这四个值中小于0就表示与边界相连通。之后是分情况判断:
  (1)当a_cansu[]和b_cansu[]中代表某个方向的数值同时小于0时则证明玩家选中的a点和b点在某个方向上和边界相连接,说明玩家所选择的两张数字图片是可以相连接的。
  (2)当不满足(1)时,证明两张图片无法直接通过边界相连,这时需要将a_cansu[]和b_cansu[]中所有保存的值取绝对值,在进行分情况判断:分为同行情况,同列情况和不同行也不同列的情况。
  (3)同行情况:在确定同行的情况下,如果两个被选的数字方块相邻,则直接确定相连,若不满足相邻,则判断外侧上端可否连通,最后判断外侧下端能否连通,如果都不满足,则无法相连。
  (4)同列情况:在确定同列的情况下,如果两个被选的数字方块相邻,则直接确定相连,若不满足相邻,则判断外侧左端可否连通,最后判断外侧右端能否连通,如果都不满足,则无法相连。
  (5)不同行也不同列的情况1:a在b右侧的情况,如图4-5所示,接下来则是通过调用waice()方法判断可否通过图4-6的方式相连;如果不能相连则重新赋值给waice()方法的形式参数列表并调用该方法,判断可否通过图4-6的方式相连;如果不能则继续按图4-7的方式相连如果不能则继续按图4-8的方式相连;如果不能则继续按图4-9的方式相连;如果都不能,则可以得出结论,玩家点击的两张数字图片无法相连。
  if(waice(q4,a,q1,q3,1,-1,q2,q5)){}//所调用的外侧方法
  图4-5示意图1图4-6示意图2
  图4-7示意图3图4-8示意图4
  图4-9示意图5
  (6)不同行也不同列的情况2:a在b左侧的情况与(5)类似。
  3.4.3判断消除和连通的方法
  public boolean waice(int a,int b,int q1,int q3,int bujin,int jiajian,int q2,int q4)//外侧消除的方法
  public boolean waitongfou(int a,int b,int ms1,int ms2,int bujin,int jiajian)//外侧是否连通的方法
  public boolean tongfou(int tance1,int tance2,int buceng)//判断是否连通的方法
  3.5游戏运行效果
  游戏运行界面如下图4-10所示:
  a
  b
  图4-10游戏运行效果图a,b

  4游戏测试

  4.1软件测试

  1.对程序各个模块进行单独测试:
  (1)退出游戏模块:
  测试方法:点击“退出游戏”按钮,观察是否关闭程序。
  测试结果:实现了游戏的退出。
  (2)重玩游戏模块:
  测试方法:点击“重玩游戏”按钮,观察游戏是否做出可重玩的反应。
  测试结果:得分清零,游戏区图片重置,实现了重玩游戏。
  (3)音乐模块:
  测试方法:点击音乐关和音乐开以及选下拉框的音乐,观察游戏是否做出一系列的反应。
  测试结果:可以实现音乐开关以及切换音乐的操作。
  2.游戏区能否像功能需求所说的一样
  测试方法:运行程序后在游戏区开始游戏,测试代码的可行性。
  测试结果:可以实现功能需求的要求。
  具体情况如图5-1所示
  a:第一关
  b:第二关
  c:第三关
  图5-1游戏运行界面a,b,c

  4.2游戏系统性能分析

  经过对系统进行测试和运行。总结出游戏系统性能如下:
  (1)游戏界面优美耐看,游戏操作简单
  程序的画风可爱,界面简单明了,功能方面比较完善,游戏易懂,操作容易。
  (2)系统响应时间短,运行时稳定
  在程序运行时,游戏的过程中对玩家鼠标操作的事件可以极快的作出反应,整体运行安全且稳定。
  (3)部分功能仍然需要完善
  由于开发时间等方面的原因,该系统还可以在增添“提示”按钮方面予以完善。

  4.3开发过程中遇到的问题以及解决方案

  (1)关于素材这一块,想了很久,最后选择了视觉中国(www.vcg.com)这一网址选择数字的图片以及背景图片等。
  (2)关于分区这一块:本来想把得分做在界面的右上方,按钮做在界面的左上方,但
  由于音乐下拉框会挡住游戏区,如图5.2所示:
  图5.2错误图一
  最后选择了得分在中间方,按钮在右侧。即图5.3:
  图5.3修正图
  (3)问题:缺少返回值,程序无法进行操作,如图5.4所示:
  图5.4错误图二
  解决方法:添加返回值。
  (4)问题:关于得分,加分过快,导致过快过关,游戏失去可玩性。如图5.5所示:
  图5.5错误图三
  解决方法:修改得分项为每次消除后得分都是1分,而不是随机10以内的整数分。
  (5)问题:关于关卡,未分第一二三关,导致每一关的设定都可以得分。即不管相加为9,10或者11,都可以加分,游戏再度失去了可玩性。如图5.6所示:
  图5.6错误图四
  解决方法:在关卡的那部分代码中添加if循环判断,在哪一关,就执行哪一关的需求,不能出现关卡重合的情况
  (6)问题:背景音乐已经加载,但是却没有声音,切换歌曲的下拉框也没有用。
  解决方法:更换音乐。
  (7)曾有的改进想法:想做一个“提示”的功能按钮,可以让玩家更加享受其中,但是换一种角度想,“提示”会让游戏变得过于简单、无趣,从而使游戏失去该有的挑战性,失去了原本的益智休闲的意义,因此最后决定不予添加该按钮。

  结论

  经过这么长时间的努力,我的毕业设计:基于JAVA连连看的数字组合游戏终于设计完成了,其功能基本符合用户需求。本次课程设计是用JAVA来设计与实现简单的数字组合游戏的基本功能,对该游戏的算法以及游戏界面和功能按钮进行详细的介绍,其中核心内容包括数字图案方块的相连问题和消除方法,游戏胜利判断以及背景音乐功能的实现。
  在这次毕业设计中,我感到掌握的知识是远远不够的,毕业设计和以前的课程设计截然不同,如果说课程设计是报告,拿毕业设计就是说明书,我不止要知道它是怎么用的和大概怎么运行的,还要掌握它的运行原理,是更上了一个层次的。由于知识水平有限,所以这个数字组合小游戏还有很多不足的地方,需要进一步改善。程序比较简单,所以功能方面可以再度提升,可以考虑再加一些难度,例如添加功能规定在某一段时间内完成,或者说在界面上进行优化等等。
  通过这次毕业设计,我需要从各个地方获取所需要的知识,这使得我学到了很多课上没有讲到过的东西,包括如何把刚学到的东西运用到程序上,这些都是我人生道路上宝贵的经验。毕业设计就是将对大学成果的验收,在原有的水平上,再度提高自己的技术,经过此次设计后,我发现自己遇到问题后不再那么慌张,之前逃避问题成了现在主动去寻找问题的解答,从之前的询问别人到现在可以沉着的去分析、解决问题。这对我以后的工作会有很大的帮助的。

  参考文献

  [1]王国春,董亚则,彭馨仪,等.JAVA程序设计课程学习资源平台构建研究[J].吉林省教育学院学报(上旬),2013,02期:94-95.
  [2]明日科技.Java从入门到精通(第3版)[M].北京:清华大学出版社,2012.
  [3]蒋宗礼,马涛,唐好魁,闫明霞等.数据库技术及应用(第2版)[M].电子工业出版社,2010:43-65.
  [4]杨博.网络教学平台的设计与实现[D].吉林大学,2014.
  [5]李婷.基于JAVA精品课程管理系统的设计与实现[D].厦门大学,2014.
  [6]段淼.《程序设计语言B》互动教学系统的设计与研究[J].吉林省经济管理干部学院学报,2014,03期.
  [7]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].电子工业出版社出版.
  [8]金宗安,张志刚,叶飞.基于JAVA技术交互式动态教学网站的设计与实现[J].许昌学院学报,2015,02期:84-86.
  [9]高守传,姚领田.JAVA实践与提高–数字图像处理与工程应用篇[M].北京:中国铁道出版社,2016.1.
  [10]尹立民,王东兴.JAVA软件项目开发实例[M].北京:电子工业出版社,2014.11.
  [11]魏朗,陈涛.Eclipse程序设计攻略教程[M].西安:西安电子科技大学出版社,2014.1.
  [12](美)James D.Foley等.计算机图形学原理及实践C语言描述[M].北京:机械工业出版社,2012.6.
  [13]张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2013.
  [14]杨正华,张秋生.Eclipse游戏编程导学[M].清华大学出版社.2013.
  [15]Java游戏编程导学[M]陆光义宋现锋编著清华大学出版社2015.
  [16]杨正华.Java游戏编程导学[M].清华大学出版社.2013.
  [17]黄维通.Java面向对象与可视化程序设计[M].清华大学出版社.2015.

  致谢

  论文写作接近尾声,在此郑重写下“致谢”两个字的时候,心中真是百感交集。回首一路走来的这几年时间,经历了许多困苦迷茫,但也同时得到了许多来自导师、领导、同学和友人的关心与帮助。在这里,我谨以诚挚的谢意,感谢他们曾经赋予我的支持和鼓励,感谢他们给予我的无尽关怀和帮助。
  首先我想要感谢我的指导老师,她在我整个课题开发和设计的过程中,为程序的设计、框架的设计、代码的撰写方面以及论文框架的设计提供了很多宝贵的意见,并且为我推荐了许多有用的资料和文献,有了指导老师的辅导和指点,我论文才能够顺利完成。
  我还要感谢在这几年里,学校对我们投入的精力,学校的老师不辞辛苦为我们上课和辅导,让我们更好的掌握的专业的知识,提高我们的实际问题的处理能力。
  在最后要祝愿学校的领导教师以及和我一起奋斗的同学们工作顺利,事业有成,也祝愿学校更加辉煌。
下载提示:

1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。

2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。

3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。

原创文章,作者:写文章小能手,如若转载,请注明出处:https://www.447766.cn/chachong/14768.html,

Like (0)
写文章小能手的头像写文章小能手游客
Previous 2021年11月2日
Next 2021年11月2日

相关推荐

My title page contents