基于android平台连连看游戏设计与实现本科毕业设计论文

基于android平台连连看游戏设计与实现本科毕业设计论文
基于android平台连连看游戏设计与实现本科毕业设计论文

毕业论文

题目:基于Android平台的连连

看游戏设计与实现

毕业论文(设计)原创性声明

本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。

据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:日期:

毕业论文(设计)授权使用说明

本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。

作者签名:指导教师签名:

日期:日期:

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

3)其它

目录

摘要.....................................................................................................II Abstract................................................................................................ III 第一章绪论 (1)

1.1 课题背景 (1)

1.2 国内外研究现状 (2)

1.3 课题研究意义 (2)

1.4 论文结构安排 (3)

第二章基础知识与开发技术 (5)

2.1 Android技术简介 (5)

2.2 Java技术简介 (9)

第三章需求分析与系统概要设计 (13)

3.1 可行性分析 (13)

3.2 功能需求分析 (14)

3.3 系统基本流程 (14)

3.4 模块设计及算法简介 (16)

第四章系统详细设计 (17)

4.1 开发环境的搭建 (17)

4.2 单项功能的实现 (18)

4.3 算法详细设计 (25)

第五章系统测试与性能分析 (35)

5.1 软件测试 (35)

5.2 游戏系统测试 (36)

5.3 游戏性能分析 (36)

总结 (39)

致谢 (41)

参考文献 (43)

摘要

论文对Android系统架构和应用开发进行初步研究,运用Java开发语言设计了一款连连看小游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的菜单界面、屏幕绘制、时间控制、布局算法、连通算法、关卡设置、音效和动画进行了详细设计。在游戏的详细设计阶段中,首先,我们必须搭建好游戏开发的必要环境,包括下载安装开发环境Eclipse和安装ADT扩充套件。开发环境搭建好之后,接着就是游戏单项功能的实现:连线消除、游戏倒计时、开始游戏、暂停游戏和游戏模式选择这些功能。然后自定义游戏视图,定义的视图能够根据控制器提供的布局数据来显示图片,并提供选中高亮、连线和消除的功能。再然后就是设计游戏控制器的部分,该部分实现了主要的控制逻辑。最后,就是最关键的算法设计部分了,论文详细介绍该游戏涉及到的算法:游戏布局算法、连通算法和僵局判定算法。完成这些步骤后,最终实现了一个界面友好、高效稳定和富有娱乐性的手机连连看益智小游戏。

关键词:Android;Java;游戏;算法;益智

Abstract

In this thesis, we designed a small game called Lianliankan through a preliminary study on the Android system architecture and application development. It determined the functional and performance requirements of the system based on the detailed requests analysis of the system. The game's menu interface, screen drawing, time control, layout algorithm, connectivity algorithm, level set, sound and animation have been detail designed. In the detailed design stage of the game. At first, we have to build the necessary environment for the development of a good game, including download and install Eclipse development environment downloading and intall ADT Extensions. After we have built the development environment, then we have to achieve single function of the game. These functions including eliminating after connected, game countdowned to start the game, pausing the game and selecting game modes. And then customize the game view that can display pictures according to the layout of the data provided by the controller, and provide functions includeing selected highlights, connections and elimination. Then, we would design the game controller which implements the main control logic. Finally, there is the most critical part that is the algorithm design, in this thesis we describe the algorithms involved in the game including Game layout algorithm, connectivity algorithms and deadlock decision algorithm. After completing these steps, a user-friendly, efficient and stable and entertaining puzzle game called lianliankan has been realized.

Key words: Android;Java;Game;Algorithms;Puzzle

第一章绪论

第一章主要是对课题的总体介绍,包括课题的背景资料简介、国内外一些研究的现状成果外,还深入地介绍了课题研究的价值以及对未来的影响,为本系统的编写调试提供了强大的理论依据。

1.1课题背景

现代科学技术的发展,改变了人类的生活。作为新世纪的大学生,应该站在时代发展的前沿,掌握现代科学技术知识,以适应社会的发展。要做一名能够独立完成面临的任务并且有创新意识的新型人才。

下面谈谈连连看游戏设计基于的Android系统平台。Android是一个基于Linux 核心(kernel)的开放手机平台作业系统。与Windows Mobile、Symbian等手机作业系统处在同一级别。对于设备制造商来说,Android是一个免费的平台。Android作业系统让设备制造商免除每出一台手机,就得被手机作业系统厂商限制的情况。对硬件开发厂商来说,Android也是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网路,具备绘图、3D 处理等能力,可以给使用者提供更好的体验。对于用户来说,Android是一个用于手机的作业系统。用户只要先申请一个免费的Google 帐户即可。当用户想换一台手机时,就可以在同样使用Android作业系统平台的不同厂牌手机之间选择,并且很容易地将联络簿等个人资料转换到新手机上。

Android 在Linux 核心的基础上,提供了各种合用的函数库和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。在Linux 核心的基础上提供Google 自制的应用程式运行环境(称作Dalvik,与Sun 的J2ME 不同),并提供基于Eclipse 整合开发环境(IDE)的免费、跨平台(Windows、Mac OS X、Linux) 开发工具(SDK),便于应用程式开发者学习和使用。免费的跨平台开发工具,让具备一些物件导向观念或视窗程式开发经验的开发者能在一定时间内上手。从不同角度来说,Android 代表着一个崭新的开放原始码作业系统平台、一个友善的免费应用程式开发环境、一个与世界各地的程式开发者,站在相同起跑点上的公平竞争机会。

而基于Android平台的连连游戏看作为一款经典的益智小游戏,一直以来都被众多的游戏爱好者喜欢,这个游戏,男女老少皆宜。游戏的吸引力主要在于:连连看游戏是一种意趣休闲的小游戏,不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。

1.2国内外研究现状

手机游戏(Mobile Game或Wireless Game),是指消费者利用随身携带并具有无线网络联机功能的智能移动终端设备,能随时随地来进行的游戏]2[。手机游戏最大的特点是其随时随地进行游戏的便利性。这些年来,手机游戏市场有了很大的发展,手机游戏已成为使用率最高的手机娱乐应用,占到各种手机娱乐应用比例的78.4%。在日本,手机游戏市场经历多年的稳定增长,市场规模已经超过了850亿日元。在美国,手机游戏作为美国手机用户最喜欢的移动应用之一,在iPhone和Android等智能终端推出后发展迅速。而在中国,根据易观智库产业数据库最新发布的《2010 年第4季度中国手机游戏市场季度监测》数据显示,我国2010年手机游戏市场规模已达到32.9 亿元,继续保持了较快的发展。

中国手机游戏的市场规模在近几年内一直保持了较快的发展,而且这几年的发展速度越来越快。预计到2012年,市场规模将达到65亿元,同比将增长66.7%。

经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此于2007年11月推出了一个专为移动设备设计的软件平台——Android。

随着Android应用的流行,网上出现了多种版本的连连看。如水晶连连看、果蔬连连看等,流行的水晶连连看以华丽界面吸引了一大批玩家。

通过对07至08年连连看小游戏行业市场热点,结合新浪、搜狐、雅虎、网易调查发布的数据分析发现,2009年小游戏热点集中在连连看小游戏领域,从2007年起风投对小游戏行业的投资案例明显减少,小游戏行业的投资目标主要集中在从事连连看小游戏企业和研发企业,小游戏行业在经历了高峰期后正趋于平静。

2008年,随着社交网络的普及和开放平台的兴起,连连看被引入了社交网络。连连看与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的宠物连连看最为流行。

1.3课题研究意义

现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型了!

不管你走到哪个游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。不仅能调节精神,还能在游戏中锻炼我们的眼力视野,注意力的专心程度,开发我们的思维能力,同时可以充实自己,向高等级挑战,培养我们面对困难时自己所具有攻克困难的信心。

完成这次毕业设计,不仅可以提高我对知识的综合运用能力,增加实现项目设计的经验,同时让我深入地了解一个安卓游戏的基本制作过程以及各项功能是如何实现的,更拓宽了自己的知识面。通过完成一个比较完善的安卓游戏,我对图像编辑、程序设计等各方面的知识有了更深的理解,也为以后的工作和学习打下了很好的铺垫。

1.4论文结构安排

整篇论文共分为五章,其主要内容安排如下:

第一章为绪论。介绍论文的选题背景,系统的基本功能的实现以及论文结构的安排。包括课题的背景资料简介、国内外研究现状、深入地介绍了课题研究的价值以及对未来的影响。为本系统的编写调试提供了强大的理论依据。

第二章为基础知识和相关的开发技术。这部分主要是介绍实现系统的技术支撑体系和系统的开发方法。包括开发模型、Android技术和Java技术等,并且详细介绍了Android的基本知识、特点、Android平台的优势和手机游戏开发的市场价值以及用Java语言开发该游戏的详细步骤。

第三章为需求分析与系统概要设计。本章概要地阐述了游戏的体系结构,描述了各个功能模块,并分析了系统功能与系统角色和流程分析,展示了本系统的流程图,为下一章的系统的设计与实现打下基础。

第四章为系统详细设计。这部分主要介绍了连连看游戏的各个功能是如何实现的,描述了系统的设计理念、基本流程和风格定位,展示了各个模块的模型和界面图,全面深刻的解析了游戏所具有的全部功能及其实现的方法。对每个界面的设计以及思路进行了详细的解释。

第五章为系统测试与性能分析。描述了软件测试的基本方法、测试的总类和测试的步骤,对游戏进行了的系统测试和性能上的分析。

第二章基础知识与开发技术

这一章介绍了系统的开发环境和开发方法,并且详细介绍了Android的基本知识、特点、Android平台的优势和手机开发的市场价值以及Java技术简介、开发的详细步骤和游戏使用的主要技术问题。

2.1 Android技术简介

2.1.1 Android基本知识

Android是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序还有移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile 在内的30多家技术和无线应用的领军企业组成。Android作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现,Google的目标是让移动通信不依赖于设备甚至是平台。

Android一词本意是指机器人,当然现在大家都知道它是Google推出的开源手机操作系统。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它是被一个由30 多家科技公司和手机公司组成的“开放手机联盟”共同研发的,这将大大降低新型手机设备的研发成本。完全整合的全移动功能性产品成为“开放手机联盟”的最终目标。

Android软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C/C ++函数库、Java程序运行环境、优化了的Linux内核。

关键应用程序。Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发。

应用程序框架及组件。Android应用程序开发基于框架和组件。Android本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。

C/C ++函数库。Android应用程序框架之下是一套C/C ++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括::标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等[2]。

Java程序运行环境。Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。

Linux内核。Android系统平台基于优化了的Linux内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。

Android应用程序以各种组件(API)为基础。API是Android软件平台的重要组成部分,也是开发Android应用的关键所在。Android 在Linux 核心的基础上,提供了各种合用的函数库,和一个完整的应用程式框架。并采用较符合商用限制的Apache 版权。

当前活动程序Activity。作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent,int),后者通常和onActivityResult(int,int,String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity[3]。

图像显示View。View是最基本的UI构件,它在屏幕中占据一个矩形区域,可用来显示文本、图像等内容,还可完成图像事件处理[4]。常用的View方法有:inflate() (由XML 文件生成View)、onDraw (Canvas)(对View进行填充) 、onMeasure (int,int)(测量View的高度和宽度)、onLayout()(完成View的布局)、onKeyDown(int, KeyEvent)(View中有按键操作时被调用)、onFocusChanged (boolean,int)(当View得到或失去关注时被调用)、setOnClilckListener()(设置View点击事件监听器)。View也包含一些子类,如:TextView(布局文件中的文本显示)、EditText(布局文件中的文本编辑)、Button(按钮)、ListView(显示列表)。

事件Intent。Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent()(构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等。

数据存取与共享机制ContentProvider:ContentProvider为应用程序提供一些访问方法,包括:Query(Uri,String [ ],String,String[ ],String,String,String)(数据信息的查询) ,insert (Uri,Contentvalues) (在Content provider中加新数据),update(Uri, Contentvalues,String,String[ ])(更新Content provide中的数据),Get type (Uri)(获取数据类型)。其中,Uri标明了ContentProvider存储的数据类型,在执行访问方法时都需依据Uri作为路径标识来确定要访问哪个ContentProvider[5]。

后台服务Service。Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context.StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信。

2.1.2 Android系统特点

Android系统具有如下5个特点:

1) 开放性。Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统;

2) 应用程序无界限。Android上的应用程序可以通过标准API(Application Programming Interface,应用程序编程接口)访问核心移动设备功能。通过互联网,应用程序可以声明它们的功能可供其他应用程序使用;

3) 应用程序是在平等的条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件;

4) 应用程序可以轻松地嵌入网络。应用程序可以轻松地嵌入HTML、JavaScript 和样式表,还可以通过WebView显示网络内容;

5) 应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行。在后台运行时,应用程序可以生成通知以引动注意[6]。

每个Android应用程序都存在于它自己的世界之中:默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。默认情况下,每个应用程序均被赋予一个唯一的Linux 用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。

使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。

2.1.3 Android手机平台的优势

现在常见的智能手机平台有:Symbian、Windows Mobile、PALM、Blackberry、iOS等。Android平台的优势主要体现在以下方面:

1) 开放性

Android平台是开放性的平台,允许任何移动终端厂商加入到Android 联盟中来。显著的开放性可以使其拥有更多的开发者。随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

2) 挣脱运营商的束缚

在过去很长的一段时间,手机应用往往受到运营商制约,使用什么功能、接入什

么网络,几乎都要受到运营商的控制。自从Android上市,用户可以更加方便地连接网络,因而运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不再是运营商口中的笑谈。

3) 丰富的硬件选择

这一点还是与Android平台的开放性相关。由于Android 的开放性,众多的厂商会推出千奇百怪,功能特色各异的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。例如如果你从诺基亚Symbian风格手机一下改用苹果iPhone,那么你可将Symbian中优秀的软件带到iPhone上使用,联系人等个人资料更是可以方便地转移。

4) 开发手机软件不受任何限制

Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰。可想而知,如此一来会有多少新颖别致的软件诞生。

5) 无缝结合的Google应用

如今叱咤互联网的Google已经走过了10年度的历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。正因为Android具有以上的优越性,所以2012年末数据显示,仅正式推出两年Android操作系统就将要超越称霸十年的诺基亚Symbian系统,使之跃居全球最受欢迎的智能手机平台[7]。

2.1.4 Android 手机游戏的市场价值

随着计算机技术和移动通信技术的快速发展,手机用户的数量越来越多,用户在挑选手机设备的时候己经不再拘泥于基本的通话功能。而新的技术从某种程度上提高了手机设备处理数据的能力,因而可以在手机上添加许多新的功能,以满足用户多样性需求。为此已经有越来越多的研发机构或部门着手研究开发手机应用软件。

手机游戏作为手机上的应用软件类型之一,更是深受广大用户的喜爱。由于手机硬件资源有限、屏幕小、游戏时间短等特点,使得手机很适合运行那些剧情简单、操作方便、有益于提高敏捷性和智力开发的游戏。Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。这是因为游戏玩家的核心需求是统一的,那就是:娱乐与打发时间(乃至更高层面的竞技需求和群体认同需求),这种需求附着于特定的社会发展阶段,不受地域的限制,甚至于能够穿透文化壁垒。因此,绝大多数种类的游戏都具备传染性与普适性,每一个售出的游戏都将会点燃周围潜在玩家的激情,最终吞噬整个需求市场[8]。

由此可知,几乎每一个Android手机用户都是游戏的需求者,都是潜在的顾客,现今的1000多万Android用户不过是冰山一角,随着Android手机市场进一步壮大,游戏的市场容量将具备更大的增长空间。

综上所述,Android平台相比其他智能手机平台有许多优势,这些优势使Android 发展迅速,而Android游戏作为Android手机最主要的应用,其市场价值有目共睹。

鉴于现阶段Android游戏研究开发的人数较少,游戏产品数量也较小的现状,对Android游戏的研究具有很大的意义,不仅仅需要研究Android游戏开发中的图形图像、人工智能等关键技术,更重要的是研究Android游戏的开发框架,以及Android 游戏开发不同于别的平台游戏开发的相关技术实现等内容。受益于近年来移动通信市场的持续快速增长,我国手机产业高速发展,成为新的国民经济增长点,带动了一系列相关产业的发展。

随着网络、通信和信息技术的突破性进展,Android手机在全球爆炸性的增长并且迅速打入中国市场。在这一前提下,手机终端游戏的开发成了热门行业。Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用,特别是Java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。连连看游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。

游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。

游戏连连看只要将相同花色的两张图用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱。总是排在受玩家最欢迎游戏排名前5位的连连看,休闲、趣味,且不分男女老少、工薪白领,在娱乐的同时还可以训练眼明手快及增强逻辑判断能力。是一款适合大众的经典小游戏。

游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流、沟通,通过游戏还可以认识更多的朋友。

Android系统手机在中国已经火热流行开来,设计本课题通过查阅相关资料可以促进自己了解更多Android手机前沿信息,理清软件开发流程,进一步加固对Java 知识的运用。对以后致力于Android应用程序开发奠定基础。

Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。连连看游戏是一个经典的游戏,它因操作简单、娱乐性强而广受欢迎。本程序将四年来所学的专业知识和其他方面的知识融入到实际应用中。通过此次课题的设计,掌握如何制作一个游戏软件,以及制作游戏软件的整个流程,制作游戏软件的步骤,为以后的就业工作打下基础。

2.2 Java技术简介

这次连连看游戏的设计与实现是基于Android平台的,而该平台以Java作为开发语言,JDK是进行Java开发时必需的开发包。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。Eclipse是一款非常优秀的开源IDE,Google官方也提供了基于Eclipse的Android开发插件ADT,Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。在大量插件的配合下,完全可以满足从企

业级Java应用到手机终端Java游戏的开发。

Java语言的学习热潮并没有因为时间的推移而消退,相反,由于计算机技术的发展所带来的新应用的出现,Java越来越流行,这种情况是以往程序设计语言在其生存周期内所不多见的[9]。Java语言之所以这样长盛不衰,一是因为其众多的技术特点与现今的应用十分合拍,可以覆盖大部分的需求;二是因为SUN公司不断推出新的版本,完善Java自身的功能。有了这两点,Java语言成为程序员首选的程序设计开发工具就在情理之中了。

Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。(题外话:Java热门的原因之一就是一个跨平台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在AJAX技术流行的原因之一。另外现在热炒的RIA富客户端的概念下的技术除了AJAX外还有Adobe的Flash/Flex,微软的Silver Light,SUN的JavaFX等,个人更看好Flash/Flex,原因是Flash插件在浏览器端占用率很高[10]。

Java技术的重要性就不讲了,从最近流行的一个统计数据上来看,目前世界上编程语言Java、C 、VB、C++依次排名前4位,这排名本身不说明什么,至少也是工业界对编程语言使用上一个侧面的反映吧。

Java编程语言与众不同之处在于:Java程序既是编译型的(转换为一种称为Java 字节码的中间语言),又是解释型的(JVM 对字节码进行解析和运行)。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用一种针对JVM 优化过的机器码形式;解释器是JVM 的实现。这段是摘自网上的,编译原理学的不是很好,对这门语言的背后运行机制理解到这样了。

Java平台是一种纯软件平台,它有三个版本JavaSE、JavaEE、JavaME。

JavaSE(Java Platform,Standard Edition)这个版本以前叫做J2SE,后来版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成Java SE 5.0。目前Java开发人员使用较多的版本是5.0,当然还有Java SE 6.0这个更新的版本。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE还包含了支持Java Web服务开发的类,并为JavaEE这个版本提供基础。

虽说就桌面应用程序开发来说,Java一直不被看好,但也稍微提一下,负责桌面GUI开发的类库我知道的有:JDK自带的主要是AWT/SWING这个Java原生类库;也可以使用IBM的SWT/JFace这个第三方类库。开发工具我了解的有:NetBeans(最近已经是6.0final版了,做GUI有使用VB的感觉),Eclipse(SWT/JFace这个项目其实就是做Eclipse项目时扩展出来的,所以对SWT/JFace支持的也不错)。

JavaEE(Java Platform,Enterprise Edition)这个版本以前叫做J2EE,也就是大家可能听得比较多的,也是Java比较流行的领域,Java的企业级版本。JavaEE下有很多流行的开发框架,像Struts、Spring、Hibernate这种流行的所谓SSH组合等。

根据项目大小、应用领域,技术平台的选择面还是很多的,除了JavaEE,还有.Net,LAMP组合(Linux、Apatch、MySql、PHP组合),相对来说比较新Ruby在Ruby on

Rails的框架应用,后两者可能在相对来说比较轻量级的Web领域运用成功案例比较多,更重量的企业级潜力还有待挖掘。

JavaME(Java Platform,Micro Edition)这个版本以前叫做J2ME。应用领域像各种移动设备和嵌入式设备,比如:手机、PDA、电视机顶盒和打印机[11]。

Java开发工具很多,个人使用的IDE有Eclipse和NetBeans。Eclispe比较流行,各种插件也多,当然用起来也不错;NetBeans现在也是越做越好了,介绍这两个IDE 主要是开源的,当然还有其它工具如JBuilder、IntelliJ、JCreator。这些IDE各有优势劣势,根据个人开发的项目来选择了。

第三章需求分析与系统概要设计

这章概要的阐述了系统的体系结构,描述了各个功能模块,并且分析了系统功能、系统角色、流程分析以及功能需求分析,为下一章的详细设计打下基础。

3.1可行性分析

1) 操作可行性

游戏的操作可行性其实是一个游戏成功与否的关键,在很多著名游戏中游戏操作合理性经常成为玩家讨论的焦点,所以说游戏设计的合理性既是需要考虑的关键也是对玩家选择此游戏的主要吸引力。

游戏时间不能过长也不能过短,在经过反复思考和老师的指导后,决定将时间做成第一关3分钟左右,往后逐渐递减。这一决定保证了游戏的正常完成,同时也是考虑到了制作时间的限制。

在连连看游戏设计中,在游戏中玩家可以通过每消去两个图片,都可以得到增加游戏剩余时间的机会。而在进入第二关后,随着游戏复杂性和难度的提升,再加上游戏时间的逐渐减少,因而在这样的设计下,玩家可以感受到游戏的可玩性,同时也可以享受到完成游戏的成就感。

2) 技术可行性

Android以Java作为开发语言,JDK是进行Java开发时必需的开发包。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选。Eclipse是一款非常优秀的开源IDE,Google官方也提供了基于Eclipse的Android开发插件ADT,Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。在大量插件的配合下,完全可以满足从企业级Java应用到手机终端Java游戏的开发。Eclipse是一款很好的动画游戏制作软件。它完全符合面向对象编程的要求,大大的提升了程序编写的能力。而且在Eclipse软件中,它自带了一些常用的组件。这为我们对这各组件开发提供了很大的帮助。因此在技术上是可行的。

3) 经济可行性

开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得。因此开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。

3.2功能需求分析

毕业设计是基于一般的连连看游戏规则与游戏模式完成的。在游戏体验和游戏模式方面又有所改进,旨在增加游戏的趣味性和挑战性。游戏设计出来后,经过测试需要实现以下的游戏基本功能:

基本游戏功能。也就是说,设计完成的游戏能够正常启动运行。在游戏的初始化阶段。首先要有排除死锁的能力,所谓的死锁就是游戏初始化完成后,新生成的消除图案列表中不存在一对可消除图案。或者是在玩家游戏过程中出现了无法继续消除的情况。此时游戏应该提供刷新按钮,玩家点击后可以重新打乱布局从而继续游戏。这个环节保障了该游戏的可玩性和人性化设计。

游戏模式选择功能。点击游戏界面中的开始按钮,可以改变消除图案的布局从而改变游戏模式。其中有全布局模式:在该模式中整个游戏界面都可被消除图案随机填充。这是最一般的游戏模式。间隔行和间隔列模式:所谓的间隔行和间隔列就是说在该模式的游戏主画面中,可消除图案是填充在间隔的行和列中的。不同的游戏模式对应着不同的游戏难度。增加了游戏的趣味性。

游戏开始以及游戏暂停功能。进入游戏界面时。会看见一副优美的背景图。然后在游戏界面的左上角有一个开始按钮。玩家点击后切换进入游戏界面。游戏开始由函数调用来完成游戏图片的加载,程序会载入图片,随机产生图片的任意排列。本次设计将游戏刷新按钮和游戏开始按钮合为一体。所以在游戏界面左下角将会看到游戏开始和暂停两个按钮。如果玩家临时有事需要暂停游戏。只需要点击暂停按钮就可以将正在运行的游戏暂停。再次点击返回按钮就可以继续之前的游戏进度。

游戏背景音乐和计时功能。在一开始进入游戏界面时,会自动播放音乐。伴随着优美的音乐响起,玩家更觉身心愉悦。顿时兴趣大增。另外游戏具备计时功能。游戏开始时,时间显示100秒。然后倒数。如果在时间倒数为0后,玩家没有将所有图片消除,则弹出对话框提示“游戏失败!重新开始”,点击确定按钮,可以重新开始新一轮游戏。反之,则该局游戏成功。弹出对话框,提示“游戏胜利!重新开始”,点击确定,开始新的一轮游戏。

3.3系统基本流程

本游戏是一款基于Android的手机连连看游戏,玩家进入游戏后,进入主界面,显示开始游戏、游戏设置、游戏介绍、游戏帮助和退出游戏。

当玩家点击开始游戏后,玩家在规定时间内消去全部图片,即可进入下一关,如果没有在规定时间内消去全部图片,则失败。当玩家所得的分数高于游戏中排行榜的分数,则可以在排行榜上保存姓名和得分。玩家在游戏过程中,可以点击菜单按钮,选择重新开始游戏、重新排列图片和退出游戏。

当玩家在菜单里选择退出游戏后,将进入系统主界面,当玩家点击游戏设置后,可以对游戏的包括声音、震动、选关等各方面进行设置,当进行完设置之后,可以点

连连看游戏毕业设计

连连看游戏毕业设计 【篇一:连连看游戏的设计与实现本科生毕业论文】 毕业论文(设计) 论文(设计)题目 院系名称 专业(班级) 姓名(学号) 指导教师 系负责人 完成时间连连看游戏的设计与实现 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下 进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方 外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过 贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期:

使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定, 即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学 校有权保存 毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以 采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为 目的前提下, 学校可以公布论文的部分或全部内容。 作者签名:日期: 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究 所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同 意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日

连连看游戏设计

中南林业科技大学 《数据结构课程设计》报告必做题:连连看游戏 选做题: 姓名: 学号: 专业班级:软件工程1班 学院:计算机与信息工程学院 指导老师:

签名: 2017年1 月10 日 目录 一、连连看问题.............................. 错误!未定义书签。 1.1需求分析.................................... 错误!未定义书签。 ............................................. 错误!未定义书签。 ............................................. 错误!未定义书签。 1.2系统设计.................................... 错误!未定义书签。 1.2.1 程序流程图 ............................. 错误!未定义书签。 1.2.2 程序组成 ............................... 错误!未定义书签。 1.3调试测试.................................... 错误!未定义书签。 1.3.1测试用例................................ 错误!未定义书签。 1.3.2测试结果................................ 错误!未定义书签。 1.3.3存在问题................................ 错误!未定义书签。 1.3.4改进设想................................ 错误!未定义书签。

连连看-JAVA课程设计报告

课程设计 2013 ~ 2014学年第二学期 设计题目连连看游戏程序 院(系) 专业软件工程 班级学号 学生姓名 设计时间 2014年6月24日~2014年6月27日 指导教师 提交日期 2014年6月27日

目录 目录 (2) 1.课程设计的目的与要求 (3) 1.1课程设计目的与要求 (3) 1.2课程设计内容 (3) 1.3课程设计的实验环境 (3) 1.4课程设计的预备知识 (3) 2.系统模块结构图 (4) 2.1 模块设计 (4) 2.1.1 菜单控制模块 (4) 2.1.2 算法模块 (5) 2.1.3 界面显示模块 (7) 3.详细设计 (9) 3.1总体算法思路 (9) 3.2代码实现 (9) 4.小结 (9)

1.课程设计的目的与要求 1.1课程设计目的与要求 1.掌握JA V A语言中面向对象的概念,并能在程序中熟练运用。 2.了解面向对象程序设计(JA V A)的基本概念以及运用面向对象技术进行程序设计的基本思 想。 3.能正确编写和调试JA V A程序。 4.了解在JA V A环境下进行程序设计的基本思想和方法。 1.2课程设计内容 1.设计一个连连看的游戏程序。 2.在JA V A环境下,将上述程序使用GUI、数据结构等内容完成 3.设计思路: (1)界面设计 1)初始测试界面可以考虑使用简单的按钮来代表连连看游戏中的图标。 2)布局可以考虑使用GRID方式。 3)设计菜单选择连连看难度等内容,具体可参照QQ连连看,也可自定义。 4)考虑完善界面,例如动画等。 (2)代码设计 1)本设计的核心为练练看算法的设计,可以考虑数据结构中的图的遍历章 节,合理设计算法,将界面中各按钮的分布映射入数学矩阵进行路径规划。 (可以上网搜索相关算法)。 2)完成连连看游戏的图形、算法等代码的设计。 4.实验步骤(包括操作方法、数据处理) (1)界面设计 (2)算法设计 (3)代码设计 1.3课程设计的实验环境 硬件要求能运行Windows xp/7操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境, ECLIPSE开发工具。 1.4课程设计的预备知识 熟悉JAVA语言及ECLIPSE开发工具。

连连看游戏--详细设计说明书

基于FLEX开发的连连看游戏详细设计说明书 [V1.1.0] 学院名称:湖南软件职业学院 专业名称:软件技术专业 组员:虢威、孙庆龙、段志辉、罗奇 指导老师:危孟君

1引言 (3) 1.1编写目的 (3) 1.2背景 (3) 1.3定义 (3) 1.4参考资料 (3) 2程序系统的结构 (3) 3程序(标识符)设计说明 (4) 3.1程序描述 (4) 3.2功能 (4) 3.3性能 (5) 3.3.1精度 (5) 3.3.2时间特性要求 (5) 3.3.3灵活性 (5) 3.4算法 (5) 3.4.1地图的生成 (5) 3.4.1寻路算法 (7) 3.5流程逻辑 (12) 3.6接口 (13) 3.7注释设计 (14) 3.9限制条件 (14) 3.10尚未解决的问题 (14)

详细设计说明书 1引言 1.1编写目的 详细设计说明书对连连看游戏的总体设计和各个模块的功能、性能、输入输出、算法、接口、程序逻辑、存储分配及其它给出了详细的设计方案,为软件开发制定详细的计划,同时也提交系统分析员,由其提出意见。这是程序员开发及未来测试烦人重要文档资料。 1.2背景 a.开发软件名称:基于FLEX开发的连连看 b.项目开发小组成员:虢威、孙庆龙、段志辉、罗奇 c.用户:所有喜欢玩这个游戏的玩家 d.项目开发环境:Windows XP + Flash Builder4 + ActionScript 3.0。 1.3定义 连连看项目详细设计方案。 1.4参考资料 (1)《软件工程案列开发与实践》,刘竹林等,清华大学出版社 (2)《IT项目管理》,曾鸿、毛志雄等,中国铁道出版社 (3)《ActionScript 3.0编程精髓》,Colinn Moock(美),机械工业出版社 (4)《Flex 3 Cookbook》,(美)诺布尔(美)安德森,电子工业出版社 2程序系统的结构 本次所设计连连看游戏的程序主结构如图2-1所示。

JAVA实验报告3-“连连看”游戏程序设计

目录 一、实验目的与要求 (2) 二、实验方案 (2) 三、实验结果和数据处理 (3) 四、结论 (20) 五、问题与讨论 (20)

一、实验目的与要求 (1)实验目的:通过在指定的窗口界面完成“连连看”小游戏程序的编写和调试,加深对面向对象程序设计的理解。 (2)实验要求:按照Java程序设计教程的要求完成第三章中“连连看”游戏程序的编写和调试。 二、实验方案 定义了一个lianliankan类,实现了接口ActionListener: ①main()方法:主函数; ②actionPerformed()方法,用来实现重来一局按钮的响应事件; ③go()方法:初始化界面,排列图形; ④ex()方法:设置“退出游戏”窗体界面; ⑤suiji()方法:产生随机数,来填充游戏界面对应的数组的各个位置; ⑥chonglie()方法:当无符合条件的图形可消去时,需要重新排列图形; ⑦ling()方法:将数组中为零的成员所对应的按钮消去(设为不可见); ⑧wei()方法:判断并记录每次单击按钮的一些信息; ⑨xiao()方法:判断两个按钮在对应数组元素的值相同时能不能消去。

三、实验结果和数据处理 整个游戏最重要的方法,xiao()方法,用来判断两个按钮在对应数组元素的值相同时能不能消去: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateL V; //游戏按钮的位置坐标 int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane();

连连看C++程序设计

源程序代码 //main.cpp #include using namespace std; #include #include #include"class.h" void main() { GridInfor g; initgraph(M,N); mciSendString("play game_begin.mp3 repeat", NULL, 0, NULL); g.InitFace(); while(1) { mouse = GetMouseMsg(); switch(mouse.uMsg) { case WM_MOUSEMOVE: g.Mousemove(mouse.x,mouse.y); break; case WM_LBUTTONDOWN: if(Single_click_judge(mouse.x,mouse.y)) { g.Leftbottondown(mouse); } break; default: break; } } closegraph(); } void GridInfor::RandGrid() //产生图片的标记{ for(int iCount = 0, x = 1; x <= ROW; ++x ) { for( int y = 1; y <= COL; ++y ) { ::GridID[x][y] = iCount++ % GridNum + 1; } } } void GridInfor::Shuffle( ) //打乱棋盘

int ix, iy, jx, jy, grid; for( int k = 0; k < 84; ++k ) { ix = rand() % ROW + 1; // 产生1 - COL 的随机数 iy = rand() % COL + 1; // 产生1 - ROW 的随机数 jx = rand() % ROW + 1; // 产生1 - COL 的随机数 jy = rand() % COL + 1; // 产生1 - ROW 的随机数 if( ::GridID[ix][iy] != ::GridID[jx][jy] ) //如果不相等就交换数据 { grid = ::GridID[ix][iy]; ::GridID[ix][iy] = ::GridID[jx][jy]; ::GridID[jx][jy] = grid; } } } ////////////////////////////////初始化界面/////////////////////////////////////// void GridInfor::InitFace() { srand((unsigned)time(NULL)); a.Load_picture(); a.RandGrid(); IMAGE image3; loadimage(&image3,"res\\bg.bmp"); putimage(0,0,&image3); getimage(&image2,3 * 42,2 * 48,42, 48); a.Shuffle(); a.ShowGrid(); } void GridInfor::Load_picture() //加载图片{ IMAGE image1,background; loadimage(&image1,"IMAGE","grids"); SetWorkingImage(&image1); for(int i = 1 ;i < GridNum + 1 ;i ++) for(int j = 0;j < 2;j++) getimage(&image[i][j],j * 42,i * 48,42, 48); loadimage(&background,"IMAGE","bg"); SetWorkingImage(&background); getimage(&image2,3 * 42,2 * 48,42, 48); SetWorkingImage(); putimage(0,0,&background); }

LabVIEW连连看课程设计报告

成绩评定表

课程设计任务书

目录 1目的及基本要求 (1) 2 连连看设计原理 (2) 3连连看设计和仿真 (2) 3.1 主程序设计 (2) 3.2 子程序详细设计 (3) 3.3 设计中遇到的问题 (10) 4 结果及性能分析 (11) 4.1 运行结果 (11) 4.2 性能分析 (11) 参考文献 (12)

1目的及基本要求 虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之的是程序框图。 虚拟仪器(VI) 的概念虚拟仪器[1](virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。尽可能采用了通用的硬件,各种仪器的差异主要是软件。同时可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现电子时钟的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。

连连看游戏设计

连连看游戏设计 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

中南林业科技大学 《数据结构课程设计》报告必做题:连连看游戏 选做题: 姓名: 学号: 专业班级:软件工程1班 学院:计算机与信息工程学院 指导老师: 签名: 2017年 1 月10 日 目录

一、连连看问题 问题描述 该游戏对一堆图案中相同的图案进行配对,点击开始按钮后,要求在一定的时间内完成对所有的图片配对,玩家每次选择两个图形,如果两图形相同,且这两个图形之间存在少于2个拐角的连通路径,则可以消除这两个图形。成功消除一对图片则计分板会增加10分,对应的时间增加3秒。要求各类类型的图片个数为偶数个,途中若有玩家找不到可以匹配的图片时可以点击提示按钮,由系统提示出一对可以消除的图片,通过玩家的点击可以消除。当所有的图片消除时,系统提示消息为“恭喜你,通关了”,如果没有在规定时间完成所有图片的配对,则系统提示为“游戏结束”。 基本要求 (1)生成游戏初始局面; (2) 每次用户选择两个图形,如果图形能满足一定条件(如果两个图形一样,且这个两个图形直接存在少于 2个弯的拐角),则两个图形都能消掉。给定具有相同图形的任意两个格子,我们需要寻找这两个格子之间在转弯少的情况下,经过格子数目少的路径。如果这个优路径的转弯数目少于 2,则这个两个格子可以消去; (3)判断游戏是否结束。如果所有图形全部消去,游戏结束;

(4) 判断死锁,当游戏玩家不可能消去任意两个图像的时候,游戏进入“死锁”状态。 设计思想 判断两个图形可以消除的条件是:两个图形必须相同,它们之间存在着0个拐角,或1个拐角,亦或是2个拐角可以互相连通消除,否则,消除不了。 广度优先搜索的具体实现:如果两个图形可以通过0个拐角连通,则从第一个选中的图片一次向右,向下,向左,向上搜索可以和当前选中图片消除的另一图片,当搜索到与之相同的图片时,则与之消去;图片布局刷新; 如果两个图片之间存在1个拐角可以消去,则广度搜索从当前图片出发,向左,右上下一次寻找一个路径节点(没有图片的点),使得寻找到的路径节点可以与选中的图片一线连通,并且可以与第二次选中的图片一线连通,则可以判断为可消除图片;图片布局重新刷新; 如果连个图片之间存在两个拐角可以连通,则分为两种情况:一种是两个图片在矩形区域的最外沿,则通过判断是否存在一条线使得在两待消除的图片周围一个单位,若存在则消去。二是两图片在矩形区域内部,则在两待消除的图片水平方向和垂直方向上寻找另外两个中间点能使两中间点之间连通,并且其中一个中间点能和待消图片1一线连通,另一中间点能和待消图片2一线连通,如若找到这样的点,则判断两图片能消去,找不到则不能消去。 需求分析 (1) 初始化游戏界面 该部分主要由执行窗口创建函数及游戏地图加载函数来实现。通过数据的初始化及游戏地图资源的加载为用户呈现一个游戏初始的界面。 (2) 图片的选择

JAVA课程设计—连连看

Java 课程设计报告 (一):前言: 随着计算机的快速发展,计算机的应用范围越来越广。其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、体育等各个领域,也应用到了娱乐方面。让人们在业余时间来放松心情。 (二):内容: 1:实验课题:连连看小游戏的开发设计 2:实验任务:完成游戏的运行 3:功能需求和分析: 本程序将涉及一款单机小型连连看游戏,该程序具备以下的功能:(1)该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随 机分布一些数字,数字的要求是至少两两相同,位置随机打乱。(2)游戏规则是将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则视为无效,若连接一对成功就 消失于界面,继续游戏,直到游戏结束。 (3)帮助:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 (4)退出游戏:可点击左下方“退出游戏”按钮,结束游戏。(5)该游戏纯属个人小型休闲游戏。

(三):代码设计 连连看java源代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener { JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮 JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout()); centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel(); thisContainer.add(centerPanel,"Center"); thisContainer.add(southPanel,"South"); thisContainer.add(northPanel,"North"); centerPanel.setLayout(new GridLayout(6,5)); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1])); diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } } exitButton=new JButton("退出"); exitButton.addActionListener(this); resetButton=new JButton("重列"); resetButton.addActionListener(this); newlyButton=new JButton("再来一局");

基于Android的连连看游戏设计

本科毕业论文(设计) 题目:基于Android的连连看游戏设计 学生:李超学号: 201040620175 学院:物理与电子科学学院专业:电子信息科学与技术入学时间: 2010 年 9 月 13 日 指导教师:王森职称: 完成日期: 2014 年 4 月 18 日

摘要 手机游戏是一款在手机或者平板电脑上运行的游戏软件。随着移动互联网和科技的发展,移动终端设备得到了广泛的应用,在日常生活中,人们越来越离不开它。在此基础上,手机游戏得到了很大的发展。android手机就是在此基础上产生的,它是由Google公司推出的一款基于Linux内核的开源手机操作系统,由于其具有开放性、不受运营商的束缚、丰富的硬件选择、开发商不受任何限制和能无缝结合优秀的Google 应用的特点。再加上手机游戏的娱乐性、随意性,更是有了很大的发展空间。 本文就是在对android 手机游戏的研究基础上,开发了一款特别有趣的游戏---连连看。通过对游戏需求的分析,确定了连连看要实现的功能,通过对游戏界面布局、音效控制、动画设置、数据模型等研究,设计出了一款界面清新,有趣的一款简单的手机游戏,希望能为大家的日常生活带来一点乐趣,是人们生活更加快乐,心情愉悦。通过这次连连看游戏的设计,我对Android产生了更加浓厚的兴趣,并且从中看到了Android游戏的发展前景,相信Android的发展前景会越来越好。 关键字:手机游戏Android 连连看 ABSTRACT Mobile game is game software which is run on a mobile phone or a tablet. With the development of Internet and science and technology, mobile terminal equipment has been widely used and is indispensable in People's Daily life.Based on this , the mobile phone games got great development. Android is produced on the basis of this.It is a a open source operating system produced by Google company ,and which based on the Linux kernel.Due to its openness, free from all bondage of operators, rich hardware selection, developers are not subject to any restrictions and combine with excellent characteristics of Google apps closely. In addition to the entertainment of mobile games , optional, it has a very big development space. This article is based on the study of android mobile games, has developed a very

C语言程序设计连连看

#include #include <> #include <> #include <> #include using namespace std; #include int mai() // 倒计时 { for (int i=3; i>=0; i--) { long t = time(NULL); for(;;) { long n = time(NULL); if(n != t) break; } system("cls"); cout<<" "< << " ** 秒

"<>d; *** cout<<" "<

连连看游戏的设计与实现

苏州高博软件技术职业学院学生毕业设计(论文)报告 系别计算机科学技术 专业计算机应用 班级1310计应YZ 姓名支峰 学号013321018 设计(论文)题目连连看游戏的设计与实现 指导教师贺雪梅 起迄日期2015年10月16日-2016年4月25日

连连看游戏的设计与实现 摘要本文用VisualC++来设计与实现简单的连连看游戏的基本功能,玩家可以在游戏区域中通过键盘控制来选取相同的两个物件,采用特定的消除规则对它们进行消除的操作,当游戏区域中的所有方块对都被消除后玩家即可胜利。本次课程设计对该游戏的算法以及游戏图案的绘制进行详细的介绍。运用连线相消的方法完成了连连看游戏。 关键词:VisualC++6.0;连连看;游戏;3D绘图 1 引言 1.1连连看游戏介绍 游戏“连连看”顾名思义就是找出相关联的东西,它来源于街机游戏《四川麻将》和《中国龙》,是给一堆图案中的相同图案进行配对的简单游戏,在2003年,一个叫做朱俊的网友将这种形式搬到了PC上,立刻成为办公一族的新宠,并迅速传遍了世界各地。饱受工作压力的人们没有太多的时间进行复杂的游戏,而对于这种动动鼠标就能过关的游戏情有独钟。之后村子的连连看风靡版,阿达的连连看奥运版,连连看反恐版,还有敏敏连连看,水晶连连看等遍地开花,造就了一个连连看的新世界。连连看游戏有多种地图样式和道具系统、大大加强了游戏的可玩性,是一款老少皆宜的休闲佳品。 1.2课程设计的目的 网络小游戏制作的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松,也可以增进人们之间的交流,沟通,通过游戏还可以认识更多的朋友,也可以到达跨省、跨市,甚至跨国间人们互相娱乐的目的。 另外也想通过本次课程设计将三年来所学的专业知识和其他方面的知识融入到实际应用中。

(完整版)Java毕业课程设计连连看游戏(含代码)

Java程序课程设计任务书 一、主要任务与目标 1、了解图形用户界面的概念; 2、了解AWT的基本体系结构,掌握窗口的基本原理; 3、掌握几种布局管理器的使用方法; 4、掌握java的事件处理机制; 5、了解Swing的基本体系结构,掌握Swing组件的使用方法; 6、掌握java小程序的工作原理和使用方法; 7、该游戏还将设置退出,再来一局按钮,并实现相应的功能。 8、设计一个用户注册登录界面 二、主要内容与基本要求 游戏规则是模仿网络上普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片所能连通的所有路径中,如果存在一条转弯点不多于两个的路径,就可以消去;如果没有,则不予处理。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,和倒计时的功能,方便用户进行操作。并且有一个用户登录注册界面,玩家必须登录以后才可以进行游戏。

三、计划进度 12月28日~ 12月29日:课程设计选题,查找参考资料 12月30日~ 12月31日:阅读参考书籍,收集资料,完成需求分析1月1日~ 1月3日:系统的代码设计及实现,数据库设计与实现 1月4日~ 1月5日:系统的调试,修改,完善 1月6日~ 1月7日:完成课程设计报告,准备答辩 四、主要参考文献 [1] 刘宝林.Java程序设计与案例习题解答与实验指导[M]. [2] 王鹏何云峰.Swing图形界面开发与案例分析[M]. [3](美)Karl Avedal , Danny Ayers, Timothy Briggs. JSP编程指南[M]. 电子工业出版社,. [4](美)Mark Linsenbardt. JSP在数据库中的应用与开发[M]. 希望电 子出版社,. [5] Dianne Phelan,Building a simple web database application[C].IEEE International Professional Communication Conference, 2004, 79-86. [6](美)Karl Avedal,Danny Ayers,Timothy Briggs.JSP编程指南[M].电子 工业出版社. [7] Dianne Phelan,Building a simple web database application[C].IEEE International Professional Communication Conference, 2005, 79-86. [8] Altendorf. Eric, Hohman. Moses, Zabicki. Roman. Using J2EE on a large, web-based project[J]. IEEE Software. (02):81-89.

QT版连连看制作的实验报告

(此文档为word格式,下载后您可任意编辑修改!) 一.游戏概述 1.1游戏简介 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”,“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 1.2游戏功能 本次设计连连看主要是在原连连看对战的基础上设计挑战模式,具体的功能如下所述: 游戏运行界面简单美观,操作简单,运行稳定;

●能够根据不同的等级模式播放不同的游戏背景音乐,包括操作 方向键、消行时的声音,音量由玩家操作控制; ●设计不同的游戏难度,当玩家达到一定的积分,可以进入相关 难度的等级; 玩家可直接操作界面上的相关按钮来控制游戏的开始、暂停、设置、退出等功能。 二.需求分析 2.1开发的需求 2.1.1 C++ CC++的哲学就不一样了,同一份程序代码,只要在该平台重新Compile成该平台的执行档,就能在该平台执行,若文字模式下的程序,的确可以跨平台,程序完全不需修改,但GUI盛行以后,由于各GUI的Library都不一样且没有标准,所以GUI程序并没办法跨平台Compile,因为各平台都有专属的Library。但是CC++优势就是执行速度快,若能解决GUI Library的问题,则跨平台即可解决。 除了GUI Library需要统一外,还得看该Library设计的好不好才行,Linux GUI我没写过就不说了,若在Windows平台,Borland的C++ Builder使用Delphi的VCL Library,Microsoft的Visual C++可以用MFC和.NET Framework,首先来看Borland的C++ Builder,它使用标准的ANSI C++语言开发,利用VCL写出来的程序也算蛮漂亮的,执行速度很快,比较麻烦的是C++Builder当初为了缩短上市时间,并没有设计自己的Library,而是藉用Delphi的Library,导致C++ Builder在Compile时,是先用Delphi的Compiler将VCL compile成

连连看游戏操作手册

用户操作手册 目录 1.引言 (2) 1.1编写目的 (2) 1.2项目背景 (2) 1.3定义 (2) 1.4参考资料 (2) 2.软件概述 (2) 2.1目标 (2) 2.2功能 (2) 2.3性能 (3) 3.运行环境 (3) 3.1硬件 (3) 3.2支持软件 (3) 4.使用说明 (3) 4.1安装和初始化 (3) 4.2输入 (4) 4.3输出 (4) 4.4出错和恢复 (4) 4.5求助查询 (4) 5.运行说明 (5) 5.1运行表 (5) 5.2运行步骤 (9) 6.程序文件(或命令文件)和数据文件一览表 (14)

1.引言 1.1编写目的 本文档将对连连看游戏的使用,操作以及维护进行描述,使用户(或潜在用户)能够通过本手册了解本软件的用途,并且知道在什么情况下,能够正确的使用它,本文档的使用者是用户。 1.2项目背景 a.项目名称:基于Android平台的连连看游戏 b.项目小组开发人员:姚富贵,张峥华,兰雨峰,兰雪峰,蒙本贵,刘刚,李尚萍 c.用户:将要使用本游戏的用户 d.项目开发环境:WindowsXP+Eclipse+AndroidSDK 1.3定义 连连看游戏用户手册 1.4参考资料 a.《需求规格说明书》 b.《概要设计说明书》 c.《详细设计说明书》 d.《Android应用开发揭秘》杨丰盛*著机械工业出版社 e.《深入浅出Android》 Gasolin著 2.软件概述 2.1目标 本项目力争成为能让玩家喜欢的一个放松休闲的小游戏,在使用过程中流畅没有错误,并具有一定的娱乐性。 2.2功能 本软件为游戏软件,纯做娱乐,该游戏属于敏捷类游戏,考验游戏玩家的反应速度以及

连连看游戏课程设计+源代码

课程设计 课程名称:程序设计课程设计 课题名称:网络连连看游戏 班级:xxx 学号:xxx 姓名:xxx 指导教师: 计算机学院

一、课程设计目的 本课程设计的目的最主要是掌握linux系统下C++编程思想,以及关于QT软件编程,设计出连连看图形界面,实现连连看各项功能,提高编程和解决问题的能力。 二、课程设计内容 设计一个连连看游戏项目,实现如下功能: 1、设计连连看游戏界面,能让用户在该界面上进行相关操作。 2、为游戏添加功能:聊天对话,逻辑层相消,游戏级别,时间限制等。 三、课程设计要求 1、课程设计的程序必须用C++语言完成。 2、课程设计必须在linux系统下进行。 3、要求写出需求分析报告。分析部分包括功能需求和界面需求。 4、本项目要求分团队完成,连连看游戏五人一组共同合作,培养学生团队合作的能力。 四、系统的需求分析和模块设计 1、需求分析 本项目需完成两大模块设计:一为游戏界面设计,二为游戏功能设计。 2、模块分解 系统功能层次模块图:

五、系统的程序设计与实现 程序的运行环境:Linux终端 开发环境:QT、C++ 程序的详细设计:连连看消去算法实现 在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且连线成功。 分3种情况:(从下面的这三种情况,我们可以知道,需要三个检测,这三个检测分别检测一条直路经。这样就会有三条路经。若这三条路经上都是空按钮,那么就刚好是三种直线(两个转弯点)把两个按钮连接起来了) * 1.相邻 * 2. 若不相邻的先在第一个按钮的同行找一个空按钮。1).找到后看第二个按钮横向到这个空按钮所在的列是否有按钮。2).没有的话再看第一个按钮到与它同行的那个空按钮之间是否有按钮。 3).没有的话,再从与第一个按钮同行的那个空按钮竖向到与第二个按钮的同行看是否有按钮。没 有的话路经就通了,可以消了. * 3.若2失败后,再在第一个按钮的同列找一个空按钮。1).找到后看第二个按钮竖向到这个空按钮所在的行是否有按钮2).没有的话,再看第一个按钮到与它同列的那个空按钮之间是否有按钮。3).没有的话,再从与第一个按钮同列的那个空按钮横向到与第二个按钮同列看是否有按钮。 没有的话路经就通了,可以消了。 * 若以上三步都失败,说明这两个按钮不可以消去。 六、系统的运行结果与分析 程序源代码: Mainwindow.cpp #include

相关文档
最新文档