




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。毕业论文题 目:基于Android平台的连连看游戏设计与实现 姓 名:XXXX学 号:XXX指导教师(职称):XXX(讲师)专 业:计算机科学与技术班 级:2010级计科01班所 在 学 院:计算机科学与工程学院 2014年6月-可编辑修改-。目 录摘 要 . IIAbstract . III第一章 绪 论 11.1 课题背景 . 11.2 国内外研究现状 . 21.3 课题研究意义.21.4 论文结构安排.3第二章基础知识与开发技术.52.1 Android技术简介.52.2 Java技术简介.9第三章需求分析与系统概要设计.133.1 可行性分析.133.2 功能需求分析.143.3 系统基本流程.143.4 模块设计及算法简介.16第四章系统详细设计.174.1 开发环境的搭建.174.2 单项功能的实现.184.3 算法详细设计.25第五章 系统测试与性能分析.355.1 软件测试. 355.2 游戏系统测试.365.3 游戏性能分析.36总 结.39致 谢.41参考文献.43-可编辑修改-。摘 要 论文对Android系统架构和应用开发进行初步研究,运用Java开发语言设计了一款连连看小游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的菜单界面、屏幕绘制、时间控制、布局算法、连通算法、关卡设置、音效和动画进行了详细设计。在游戏的详细设计阶段中,首先,我们必须搭建好游戏开发的必要环境,包括下载安装开发环境Eclipse和安装ADT扩充套件。开发环境搭建好之后,接着就是游戏单项功能的实现:连线消除、游戏倒计时、开始游戏、暂停游戏和游戏模式选择这些功能。然后自定义游戏视图,定义的视图能够根据控制器提供的布局数据来显示图片,并提供选中高亮、连线和消除的功能。再然后就是设计游戏控制器的部分,该部分实现了主要的控制逻辑。最后,就是最关键的算法设计部分了,论文详细介绍该游戏涉及到的算法:游戏布局算法、连通算法和僵局判定算法。完成这些步骤后,最终实现了一个界面友好、高效稳定和富有娱乐性的手机连连看益智小游戏。关键词:Android;Java;游戏;算法;益智 -可编辑修改-AbstractIn 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 games 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),是指消费者利用随身携带并具有无线网络联机功能的智能移动终端设备,能随时随地来进行的游戏。手机游戏最大的特点是其随时随地进行游戏的便利性。这些年来,手机游戏市场有了很大的发展,手机游戏已成为使用率最高的手机娱乐应用,占到各种手机娱乐应用比例的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获取某结果并返回给打开它的activity3。图像显示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作为路径标识来确定要访问哪个ContentProvider5。后台服务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章 需求分析与系统概要设计这章概要的阐述了系统的体系结构,描述了各个功能模块,并且分析了系统功能、系统角色、流程分析以及功能需求分析,为下一章的详细设计打下基础。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的手机连连看游戏,玩家进入游戏后,进入主界面,显示开始游戏、游戏设置、游戏介绍、游戏帮助和退出游戏。当玩家点击开始游戏后,玩家在规定时间内消去全部图片,即可进入下一关,如果没有在规定时间内消去全部图片,则失败。当玩家所得的分数高于游戏中排行榜的分数,则可以在排行榜上保存姓名和得分。玩家在游戏过程中,可以点击菜单按钮,选择重新开始游戏、重新排列图片和退出游戏。当玩家在菜单里选择退出游戏后,将进入系统主界面,当玩家点击游戏设置后,可以对游戏的包括声音、震动、选关等各方面进行设置,当进行完设置之后,可以点击保存退出对所做操作进行保存。当玩家点击保存退出后,将进入系统主界面,当玩家点击关于游”后,可以看到游戏的排行榜,也可以清除排行榜的记录,还可以看到游戏的帮助文档,向玩家介绍本游戏的使用方法。当玩家点击主界面的退出游戏,即退出连连看游戏程序。系统流程图如图3.1所示。图3.1 系统流程图用户刚刚进入游戏时候,将会进入游戏开始界面。点击开始游戏按钮,载入游戏,系统自动产生初始游戏布局。此时系统将会自动判断游戏初始布局是否产生死锁即无法找出一对可消除图案。如果产生死锁,系统给予提示,玩家可以通过点击按钮重新生成游戏布局并继续游戏。在游戏过程中玩家点击游戏操作区选定一个图片,系统予以记录,用户通过点击下一个图片完成一对图片输入。此时系统判断玩家选择的两个图案是否连通。如果连通,予以消除。否则玩家重新选定消除图片。配对的图案被消除后,将从游戏界面消失。形成新的游戏布局。玩家继续游戏直到游戏结束。3.4模块设计及算法简介本次系统设计总共分为四个模块:菜单设计、界面设计、算法设计和消息响应设计:菜单设计。总共分为四个模块:开始游戏、暂停游戏、重置布局和模式选择。界面设计。总共分为三个模块:框架设计、地图设计和计时器。算法设计。总共分为三个个模块:游戏布局、连通算法设计和僵局判定。消息响应设计。总共分为三个模块:鼠标响应、时间响应和绘图响应。本次设计的连连看游戏主要设计到一下三个核心算法:游戏布局、连通算法、僵局判定算法。下面将一一简介:1) 游戏布局在该算法中,首先生成一个nm的矩阵。在该矩阵中每个节点的信息都将被记录。所有的节点分为两类:路径节点和图案节点。随着游戏的进展,图片的消除,图案节点将被消除,成为路径节点。形成新的布局。游戏结束时,节点列表将被清空。2) 连通算法连连看的连通算法主要是判断两个图片是否可连。根据连连看规则,其可以连接必须符合两个图片的画面一样,而且两个图片所在位置之间连线的转折点不能超过两个也就是连线不能超过三条线。根据不同的情况,连通算法可以分为一线连通、二线连通和三线连通。3) 僵局判定算法所谓的僵局,顾名思义就是说玩家在游戏时,不能够继续找出新的一对可消除图案,游戏不能继续进行。从而产生死
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一亲子采摘活动方案
- 六一慈善活动策划方案
- 六一汉唐活动方案
- 六一活动健美操活动方案
- 六一活动合唱活动方案
- 六一班活动优惠活动方案
- 六一纳新活动方案
- 六一节教学活动方案
- 六一蛋糕店活动策划方案
- 六十校庆活动策划方案
- 学习贯彻二十届三中全会精神测试题200(含答案)
- DB64-T 1972-2024 风积沙路基填筑(干压法)施工技术规范
- 浪潮集团ERP实施岗在线测评题
- 低温水电解制氢系统 稳动态及电能质量性能测试方法(征求意见稿)
- 气象行业天气预报技能竞赛理论试题库资料(含答案)
- 校园环保之星事迹材料(7篇)
- 植物学基础智慧树知到期末考试答案章节答案2024年哈尔滨师范大学
- 建筑同层排水系统技术规程
- 六年级数学下册 期末综合模拟测试卷(冀教版)
- 红星美凯龙调研课件
- 施工重要环境因素清单
评论
0/150
提交评论