连连看小游戏设计毕业设计.docx
- 文档编号:24101685
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:43
- 大小:322.46KB
连连看小游戏设计毕业设计.docx
《连连看小游戏设计毕业设计.docx》由会员分享,可在线阅读,更多相关《连连看小游戏设计毕业设计.docx(43页珍藏版)》请在冰豆网上搜索。
连连看小游戏设计毕业设计
摘要
游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。
这个程序的界面使用Jframe框架,主程序窗口包含一个主面板,其中包含两个子面板,左边一层子面板是游戏窗口,符合我们玩游戏的习惯,包含连连看游戏的图片元素,用户进行游戏能找到32对图片;右边一层用来实现游戏控制,有开始、刷新、选择难度、显示分数、进度条等功能选项。
结合Java编程语言的简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程、动态和连连看游戏的休闲、趣味、益智加上美观的界面设计和秀色可餐的水果蔬菜游戏图片元素,使这款连连看游戏成为现代都市人们打发无聊,放松身心的好帮手。
加入了游戏时间控制和过关控制及进度条提示功能使游戏速度节奏快,画面清晰可爱,老少皆宜。
通过ActionEvent组件进行动作事件的监听和处理。
游戏通过定义数组,根据一定的算法实现规定的路径判断。
关键字:
Java连连看;Jframe;数组;路径判断
Abstract
Thegame"lianliankan",aslongasthetwocardswiththesamesuitstraightuptothreeconnectedcanbeeliminated,rulesareeasy.ThisprogramofinterfaceusingJframeframework,mainprogramwindowcontainsaamainpanel,whichcontainstwoachildPanel,leftalayerchildPanelisgamewindow,meetweplayinggameofhabits,containsfestseegameofpictureselement,userforgamecanfound32onpictures;rightalayerusedtoachievedgamecontrol,hasbegan,andrefresh,andselectdifficulty,anddisplayedscore,andprogressarticle,featuresoption.CombinesasimpleJavaprogramminglanguage,object-oriented,distributed,interpreted,robust,securesystem-independent,portable,high-performance,multithreaded,dynamicandlianliankangames,leisure,fun,puzzletogetherwithattractiveinterfacedesignandappetizingfruitvegetablespictureelements,makesthislianliankangamesbecomethemoderncityspendingtedious,relaxedandgoodhelp.Joinedtheplayingtimecontrolandbordercontrolandprogressbarpromptsmakethegamefastertempo,clearpictureandlovely,bothyoungandold.ActionthroughtheActionEventcomponenteventlisteningandhandling.Gamesbydefininganarrayaccordingtocertainalgorithmsprovidepathofjudgment.
Keywords:
JavaLianliankan;Jframe;array;approaches
目录
1.引言………………………………………………………………………………1
2.游戏规则………………………………………………………1
2.1概要………………………………………………………………1
2.2操作………………………………………………………………1
2.3胜利条件…………………………………………………………1
2.4失败条件……………………………………………………………1
3.发展概况…………………………………………………………1
3.1连连看游戏的历史………………………………………………1
3.2用java语言写连连看游戏的原因………………………………2
4.方案论证………………………………………………………2
4.1设计原理………………………………………………………2
4.2方案选择………………………………………………………3
4.3主要问题………………………………………………………3
4.4技术要求………………………………………………………3
4.5游戏应用环境的构建……………………………………………4
5.系统分析…………………………………………………………4
5.1模块分析………………………………………………………4
5.1.1界面的设计和图片的随机生成模块………………………………5
5.1.2菜单控制模块………………………………………………………5
5.1.3算法模块……………………………………………………………5
5.2基本思路…………………………………………………………6
5.2.1游戏地图设计思路……………………………………………6
5.2.2连连看游戏图片………………………………………………6
5.2.3获取图片位置…………………………………………………6
5.2.4路径判断思路…………………………………………………7
6.系统设计……………………………………………………8
6.1主界面的设计…………………………………………………………8
6.2图片的随机生成………………………………………………9
6.3单击控件的事件触发…………………………………………9
6.3.1开始游戏按钮………………………………………………9
6.3.2重列按钮……………………………………………………10
6.3.3难度选择按钮………………………………………………10
6.4清除两个一样的符合条件的方块……………………………………10
6.5过关设置…………………………………………………………10
7.结果分析…………………………………………………………11
7.1优点………………………………………………………………11
7.2缺点………………………………………………………………11
8.总结……………………………………………………………………11
参考文献………………………………………………………………13
致谢……………………………………………………………………………14
1.引言
网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。
连连看游戏就是典型。
不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。
作为最基本的网页游戏之一,“连连看”游戏的设计与实现可以积累开发网页游戏的经验,完善开发思路,为以后更高层次上的网页游戏开发,打下坚实的基础,更好的推动网页游戏的发展。
现代人生活节奏快,工作压力大,诸如此类游戏不仅益智,而且简单易玩有趣,能放松心情,打发无聊,平淡中创造乐趣。
2.游戏规则
2.1概要
玩家可以将2个相同图案的牌连接起来,连接线不多于3根直线,就可以成功将两个牌消除。
2.2操作
第一次使用鼠标点击游戏界面中的牌,该牌此时为"被选中",以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,中间的直线不超过3根,则消掉这一对牌,否则第一个牌恢复成未被选中状态,而第二个牌变成被选中状态。
2.3胜利条件
将游戏界面上的牌全部消除掉。
2.4失败条件
到规定时间,界面上的牌仍未全部消掉。
3.发展概况
3.1连连看游戏的历史
游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。
“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。
游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。
这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。
并于2004年,取得了国家版权局的计算机软件著作权登记证书。
随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。
如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。
2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。
“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。
3.2用Java语言写连连看游戏的原因
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
因此,结合Java编程语言的简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程、动态和连连看游戏的休闲、趣味、益智,本文将具体介绍用Java语言编写连连看游戏的可行性和方法。
由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的。
Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。
有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。
Java编程不仅简单可靠,而且有功能强大的类库,本文介绍的Java连连看游戏将使用Swing类库,Java的类库,使用Swing平台编写的带有GUI(图形用户接口)的程序和其他原始程序非常不同。
选用AWT工具包编写程序的程序师看到的都是原始接口,而且也无法获得先进的GUI编程支持,如果使用的话,就要提供每个平台上面所需的API,这将是一项庞大的工程。
Swing则是完全用Java语言所写的程序,避免了接口元素重复的问题,只使用所有平台都支持的最基本的绘图机制。
但是很多用户不知道如何在Java风格和Windows风格之间进行转换,结果造成了Java程序的接口在很多程序中非常特殊。
苹果电脑已经提供了优化过的Java运行时程序,包含了MacOSX的经典Aqua接口风格。
4.方案论证
4.1设计原理
本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,重新开始新游戏。
游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。
当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。
在两张想同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。
游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。
如果在一定时间内图片没有消完则提示玩家时间到。
每关以此类推。
考虑到本游戏软件是单机小游戏,所以充分考虑到了它的娱乐性,并没有很复杂的功能。
4.2方案选择
在概要设计阶段,主要有三种方案可供选择:
1.所有图片在面板的所有方格随机出现,位置由计算机随机配置,直到面板被填满。
2.所有图片在面板的所有方格随机出现,并且每张图片的的出现次数为偶数,时间会有限制,每一关的图片数量是不同的,这样就增加了游戏的难度。
3.图片出现的种类数和重复次数是可以由玩家选择的,时间由游戏约定。
并且每张图片的的出现次数为偶数。
在第一种方案中,由于出现的图片种类数和重复次数都由软件约定,这样就不能保证游戏能顺利结束,不可行。
第二种方案中,图片出现的种类数由软件控制,缺乏玩家自主选择的空间,只是在玩系统已经是设定好的游戏,空洞单调,这样就在无意中降低了玩家在游戏的过程中乐趣,最后致使玩家放弃继续玩下去。
我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。
所以我们放弃第一种和第二种方案的设计思想,参考网络上流行的连连看的游戏,设计出第三种方案。
4.3主要问题
开始制作游戏时,主要要解决的问题有以下几个方面:
如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。
4.4技术要求
连连看软件系统能够提供友好的用户界面,使操作人员心情放松。
具有良好的运行效率。
(1)、用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。
程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。
记录图片坐标,以方便计算图片是否可以相连。
确定图片大小,以确定用户点击的是那张图片。
(2)、用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。
如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。
以便用户可以进行以后的选择。
(3)、用户也可使通过使用“刷新”功能进行图片重新排版。
4.5游戏应用环境的构建
4.5.1游戏需要的硬件环境
普通PC
CPU:
1GHz及以上
内存:
256MB及以上
分辨率:
推荐1024*768像素
4.5.2游戏需要的软件环境
操作系统:
Windowsxp/7
开发环境:
eclipse
开发工具包:
JDK
5.系统分析
5.1模块分析
针对上面的需求分析,我们把整个软件分成三个模块:
1、界面设计和图片的随机生成模块模块;2、菜单控制模块;3、算法模块。
以下就是系统结构图(图5-1)和软件界面图(图5-2):
5.1.1界面设计和图片的随机生成模块
(1).游戏界面设计。
(2).游戏过关、失败的设计。
5.1.2菜单控制模块
(1).开始游戏:
载入游戏图片,开始游戏计时计分,启动进度条。
(2).刷新:
计算剩余图片个数,重新载入图片,继续计时计分。
(3).游戏难度选择:
可以选择四个难度进行游戏。
(4).提示:
游戏过关和结束的提示。
(5).结束:
结束游戏。
5.1.3算法模块
(1).图片路径处理设计。
(2).图片的产生设计。
游戏流程图如下图所示(图5-3)。
5.2基本思路
5.2.1游戏地图设计思路
地图的设计是采用GUI编程的网格布局,定义一个八行八列的网格布局,使用16个数字然后随机产生四个数字,用二维数组把它们打乱放到八行八列的网格布局中,注意的是二维数组的下标要和网格布局是的行、列数相同。
5.2.2连连看游戏图片
连连看游戏的图片选择需要一定的技巧,不同年龄段的不同兴趣的人对不同的游戏画面有不同的反应,为了消除现代社会人们普遍感觉到的疲劳感,我决定用人人都喜欢,简单易做又养眼的热带盛产的水果做连连看图片,达到了游戏的初衷——休闲。
5.2.3获取图片位置
如何将图片随机的排列在面板上,有两种方法,一是随机选择图片,然后按顺序排列在画布上,二是顺序选择图片随机排列在画布上,这两种方法都可行,姑且选择第二种方法,通过数组从图片库得到图片,随机分布在画布上。
为了保证游戏能顺利结束,图片个数一定是偶数个。
5.2.4路径判断的思路
连连看所要求的是:
1.两个目标是相同的。
2.两个目标之间连接线的折点不超过两个。
(连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况:
1.直线相连2.一个折点(图5-4、图5-5)3.两个折点(图5-6、图5-7):
可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。
所以设计思路就是:
假设目标点p1,p2,如果有两个折点分别为z1,z2那么,所要进行的是:
1.如果验证p1,p2直线连线,则连接成立。
2.搜索以p1,p2的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证p1到z1/z1到z2/z2到p2是否都能直线相连,是则连接成立。
6.系统设计
由于这个程序的界面使用Jframe框架,并不是很复杂,所以用到的控件也不多,主要核心内容还是后台的代码设计。
图片的随机生成主要是用到一个map[][]面板数组,数组的每一个元素都赋随机值,然后根据数组元素值,来显示图片。
使用Jframe框架进行开发的原因:
Jframe应用软件开发平台是一个基于JavaEE的面向应用软件开发的框架及自动化代码生成平台。
通过Jframe应用软件的开发不需再重头做起,只需通过Jframe自动代码生成工具配置,生成业务代码,并在自动生成的代码基础上简单地补充业务逻辑即可。
Jframe降低了软件研发的要求,开发人员也无需掌握太多高深技术,只需掌握Java基础知识和Javascript基础知识,就可在平台上进行二次开发,Jframe的目标是“直接降低软件企业80%的的研发成本,缩短项目开发周期,提升客户满意度”;应用软件开发过程中80%的重复工作将由Jframe来完成,20%的特殊业务逻辑将由程序员在Jframe应用开发平台基础上补充完善。
6.1主界面的设计
主类直接继承自JFrame,就可以直接调用JFrame的方法了:
publicclasslianliankanextendsJFrame。
为这个类创建一个Jpanel对象llk,在Jpanel中添加图片按钮和控制按钮,最终界面如图6-1所示。
具体代码见附录。
程序主体界面:
1、色彩上:
总结人们的视觉习惯和色彩对眼睛的健康影响,决定对于画布采用灰色背景,便于识别图片,集中精力,右边一侧显示控制和分数,简单易用。
2、功能上:
开始和刷新控制按钮,得分和剩余时间提示,醒目的进度条增加了游戏的趣味性。
6.2图片的随机生成
实现这个功能要分两个步骤:
将所有图片分类并按顺序标号,程序运行时即载入游戏需要的N张图片,默认情况下图片种类数是15,并且可以选择是否重列。
通过一个循环,为面板数组赋随机值,其值不大于用户选择的图片种类数。
然后按照面板数组载入图片。
具体载入图片的代码见附录。
6.3单击控件的事件触发
总共有两个单击按钮。
分别是:
开始游戏(进入游戏状态)、重列(重新加载图片)、难度选择。
6.3.1开始游戏按钮
(1)将画板上的所有游戏按钮激活,即设置为Enabled。
用鼠标单击画板按钮时就能够运行设置好的事件处理函数actionPerformed,进行消去判断,如果两个图片一样,且满足消去条件则消去。
(2)新建画板地图,画板上将布满随机图片。
(3)初始化时间控件jdt的时间为0,时间控件的进度条启动,游戏开始进行计时,一分钟后结束。
(4)设置分数标签的数值为0,开始计算玩家游戏分数。
(5)设置游戏过关标签的数值为0,开始计算玩家游戏过关数。
6.3.2重列按钮
(1)计算游戏剩余未消去的图片的个数。
(2)新建地图,按照游戏剩余未消去图片的个数生成图片,并随机排列在画板上。
6.3.3难度选择按钮
(1)若设置为简单选项,则设置蔬菜类型为四个,然后开始新游戏。
(2)若设置为一般选项,则设置蔬菜类型为八个,然后开始新游戏。
(3)若设置为较难选项,则设置蔬菜类型为十二个,然后开始新游戏。
(4)若设置为超难选项,则设置蔬菜类型为十五个,然后开始新游戏。
实现代码见附录。
6.4清除两个一样的符合条件的方块
分3种情况:
从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。
这样就会有三条路经。
若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了。
(1)、相邻。
(2)、若不相邻的先在第一个按钮的同行找一个空按钮。
1.找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。
2.没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。
3.没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。
没有的话路经就通了可以消了。
(3)、若
(2)失败后,再在第一个按钮的同列找一个空按钮。
1.找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2.没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。
3.没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。
没有的话路经就通了,可以消了。
若以上三步都失败,说明这两个按钮不可以消去。
实现代码见附录。
6.5过关设置
把界面上全部图片都消去即为通过此关,进入下一关。
实现代码见附录。
7.结果分析
根据游戏的运行结果得出的结论:
7.1优点
(1)程序界面清新易玩,布局比较合理;
(2)程序界面功能多,基本能够满足玩家的一般需求;
(3)游戏图片是我精心挑选的热带水果图,养眼易辨,增加了游戏的趣味;
(4)自己设计的进度条,加入了多线程的功能。
7.2不足
(1)过关后,分数不累计,相当于重新开始了;
(2)一局游戏难度选择只能选择一次,否则算是重新开始,每关的难度一样,很不灵活;
(3)只能重列一次,以至于有时候进入死局;
(4)游戏没有阶段性奖励提示,和过关提示;
(5)游戏没有动画效果,感觉很死板。
8.总结
做事要积极主动,态度决定一切,不得不说,同样的事,同一水平线,不同人做的时候,态度和积极性就决定着一切,所以一个人只要工作态度好,我相信这个人的工作绝对不会差。
就为解决一个问题,我们可能连续十几甚至几十小时的坐在计算机前不停的工作。
一个问题解决了,可能又有其它的问题出现。
而你要是不能坚持下来,可能从前的一切努力都流失了。
轻易言败的人请不要做程序员,你不可能成功。
执着是最可贵的。
整个程序设计的过程就是一个研究学习,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连连 小游戏 设计 毕业设计