1、本科毕业论文(20 届)连连看小游戏设计所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘要游戏“连连看” ,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。这个程序的界面使用 Jframe 框架,主程序窗口包含一个主面板,其中包含两个子面板,左边一层子面板是游戏窗口,符合我们玩游戏的习惯,包含连连看游戏的图片元素,用户进行游戏能找到 32 对图片;右边一层用来实现游戏控制,有开始、刷新、选择难度、显示分数、进度条等功能选项。结合 Java 编程语言的简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程、动态和连连看游戏的休闲、趣味
2、、益智加上美观的界面设计和秀色可餐的水果蔬菜游戏图片元素,使这款连连看游戏成为现代都市人们打发无聊,放松身心的好帮手。加入了游戏时间控制和过关控制及进度条提示功能使游戏速度节奏快,画面清晰可爱,老少皆宜。通过 ActionEvent 组件进行动作事件的监听和处理。游戏通过定义数组,根据一定的算法实现规定的路径判断。关键字: Java 连连看;Jframe;数组;路径判断AbstractThe game “lianliankan“, as long as the two cards with the same suit straight up to three connected can be
3、eliminated, rules are easy. This program of interface using Jframe framework, main program window contains a a main panel, which contains two a child Panel, left a layer child Panel is game window, meet we playing game of habits, contains fest see game of pictures element, user for game can found 32
4、 on pictures; right a layer used to achieved game control, has began, and refresh, and select difficulty, and displayed score, and progress article, features option. Combines a simple Java programming language, object-oriented, distributed, interpreted, robust, secure system-independent, portable, h
5、igh-performance, multithreaded, dynamic and lianliankan games, leisure, fun, puzzle together with attractive interface design and appetizing fruit vegetables picture elements, makes this lianliankan games become the modern city spending tedious, relaxed and good help. Joined the playing time control
6、 and border control and progress bar prompts make the game faster tempo, clear picture and lovely, both young and old. Action through the ActionEvent component event listening and handling. Games by defining an array according to certain algorithms provide path of judgment.Key words: Java Lianlianka
7、n ; Jframe ; array ; approaches目录1.引 言12.游戏规则12.1 概要12.2 操作12.3 胜利条件12.4 失败条件13.发展概况13.1 连连看游戏的历史13.2 用 java 语言写连连看游戏的原因24.方案论证24.1 设计原理24.2 方案选择34.3 主要问题34.4 技术要求34.5 游戏应用环境的构建45.系统分析45.1 模块分析45.1.1 界面的设计和图片的随机生成模块5 5.1.2 菜单控制模块55.1.3 算法模块5 5.2 基本思路65.2.1 游戏地图设计思路65.2.2 连连看游戏图片65.2.3 获取图片位置6 5.2.4
8、路径判断思路76.系统设计86.1 主界面的设计86.2 图片的随机生成9 6.3 单击控件的事件触发96.3.1 开始游戏按钮96.3.2 重列按钮106.3.3 难度选择按钮106.4 清除两个一样的符合条件的方块106.5 过关设置107.结果分析117.1 优点117.2 缺点118.总结11参考文献13致 谢1411.引言网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程) ,很多游戏不乏经典。连连看游戏就是典型。不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前 5 位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪
9、白领,是一款适合大众的经典网络休闲小游戏。作为最基本的网页游戏之一, “连连看”游戏的设计与实现可以积累开发网页游戏的经验,完善开发思路,为以后更高层次上的网页游戏开发,打下坚实的基础,更好的推动网页游戏的发展。现代人生活节奏快,工作压力大,诸如此类游戏不仅益智,而且简单易玩有趣,能放松心情,打发无聊,平淡中创造乐趣。2.游戏规则2.1 概要玩家可以将 2 个相同图案的牌连接起来,连接线不多于 3 根直线,就可以成功将两个牌消除。 2.2 操作第一次使用鼠标点击游戏界面中的牌,该牌此时为“被选中“,以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,
10、中间的直线不超过 3 根,则消掉这一对牌,否则第一个牌恢复成未被选中状态,而第二个牌变成被选中状态。2.3 胜利条件将游戏界面上的牌全部消除掉。2.4 失败条件到规定时间,界面上的牌仍未全部消掉。3.发展概况3.1 连连看游戏的历史游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。 “连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众2多程序员开发出多种版本的“连连看” 。这其中,顾方编写的“阿达连连看”以其精良的制作广受
11、好评,这也成为顾方“阿达系列软件”的核心产品。并于 2004 年,取得了国家版权局的计算机软件著作权登记证书。随着 Flash 应用的流行,网上出现了多种在线 Flash 版本“连连看” 。如“水晶连连看” 、 “果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。2008 年,随着社交网络的普及和开放平台的兴起, “连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者 Jonevey 在 Manyou 开放平台上推出的“宠物连连看”最为流行。 3.2 用 Java 语言写连连看游戏的原因Java 是一种可以撰写跨平台应用软
12、件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。因此,结合 Java 编程语言的简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程、动态和连连看游戏的休闲、趣味、益智,本
13、文将具体介绍用 Java 语言编写连连看游戏的可行性和方法。由于计算机技术的发展所带来的新应用的出现,Java 越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的。Java 语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为 SUN 公司不断推出新的版本,完善 Java 自身的功能。有了这两点,Java 语言成为程序员首选的程序设计开发工具就在情理之中了。Java 编程不仅简单可靠,而且有功能强大的类库,本文介绍的 Java 连连看游戏将使用 Swing 类库,Java 的类库,使用 Swing 平台编写的带有 GUI(图形用户接口
14、)的程序和其他原始程序非常不同。选用 AWT 工具包编写程序的程序师看到的都是原始接口,而且也无法获得先进的 GUI 编程支持,如果使用的话,就要提供每个平台上面所需的 API,这将是一项庞大的工程。Swing 则是完全用 Java 语言所写的程序,避免了接口元素重复的问题,只使用所有平台都支持的最基本的绘图机制。但是很多用户不知道如何在 Java风格和 Windows 风格之间进行转换,结果造成了 Java 程序的接口在很多程序中非常特殊。苹果电脑已经提供了优化过的 Java 运行时程序,包含了 Mac OS X 的经典 Aqua 接口风格。4.方案论证4.1 设计原理 本设计采用单机模式,
15、当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,重新开始新游戏。游戏规则是模仿普通3的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。 游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。如果在一定时间内图片没有消完则提示玩家时间到。每关以此类推。考虑到本游戏软件是单机小游戏,所以充分考虑到了它的娱乐性,并没有很复杂的功能。4.2 方案选择 在概要设计阶段,主要有三种方案可供选择
16、: 1.所有图片在面板的所有方格随机出现,位置由计算机随机配置,直到面板被填满。2.所有图片在面板的所有方格随机出现,并且每张图片的的出现次数为偶数,时间会有限制,每一关的图片数量是不同的,这样就增加了游戏的难度。3.图片出现的种类数和重复次数是可以由玩家选择的,时间由游戏约定。并且每张图片的的出现次数为偶数。在第一种方案中,由于出现的图片种类数和重复次数都由软件约定,这样就不能保证游戏能顺利结束,不可行。第二种方案中,图片出现的种类数由软件控制,缺乏玩家自主选择的空间,只是在玩系统已经是设定好的游戏,空洞单调,这样就在无意中降低了玩家在游戏的过程中乐趣,最后致使玩家放弃继续玩下去。我们参考了
17、网络上的连连看游戏,考虑到游戏的娱乐性。所以我们放弃第一种和第二种方案的设计思想,参考网络上流行的连连看的游戏,设计出第三种方案。 4.3 主要问题 开始制作游戏时,主要要解决的问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。 4.4 技术要求 连连看软件系统能够提供友好的用户界面,使操作人员心情放松。具有良好的运行效率。(1)、用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片
18、,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。(2)、用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归 0) ,以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为 0,并消除这两张4图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。(3)、用户也可使通过使用“刷新”功能进行图片重新排版。4.5 游戏应用环境的构建4.5.1 游戏需要的硬件环境普通 PCCPU :1GHz 及以上内存 : 256MB 及以上
19、分辨率 :推荐 1024*768 像素4.5.2 游戏需要的软件环境操作系统 :Windows xp/7开发环境 :eclipse开发工具包 :JDK5.系统分析5.1 模块分析 针对上面的需求分析,我们把整个软件分成三个模块:1、界面设计和图片的随机生成模块模块;2、菜单控制模块; 3、算法模块。以下就是系统结构图(图 5-1)和软件界面图(图 5-2):图 5-1 系统结构图55.1.1 界面设计和图片的随机生成模块(1).游戏界面设计。(2).游戏过关、失败的设计。5.1.2 菜单控制模块(1). 开始游戏:载入游戏图片,开始游戏计时计分,启动进度条。(2). 刷新:计算剩余图片个数,重新载入图片,继续计时计分。(3). 游戏难度选择:可以选择四个难度进行游戏。(4). 提示:游戏过关和结束的提示。(5). 结束:结束游戏。5.1.3 算法模块(1).图片路径处理设计。(2).图片的产生设计。游戏流程图如下图所示(图 5-3) 。图 5-2 软件界面图