版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数独(Sudoku)是一种运用纸、笔进行演算的数学智力游戏。玩家需要根据9X9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个小九宫内的数字均含19,而且不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。随着搭载Android系统的智能手机在中国的普及,不论何时,不论何地,在智能手机端玩数独游戏成为一种方便快捷的新需求。数独游戏出现错误时,必须回退一步或几步并擦除已经填入的大部分数字,在智能手机上玩数独游戏可以随时修改单元格中的数字。数独游戏规则需要根据已有数字进行推理判断,不仅具有很强的趣味性,而且能锻炼我们的逻辑
2、思维能力。本课题研究设计一款运行在Android平台的数独游戏软件。该课题主要使用Java语言开发,运行于Android操作系统,实现了数独游戏的基本功能。关键词:数独;Android;手机游戏;JavaABSTRACTSudokuisamathpuzzlegameplayedwithpaperandpen.Playersneedtobefilled9x9diskwithknownfigures,reasoningotherfigureout,andmeeteachrow,eachcolumn,eachsmallnineintrauterinefigures1to9inclusive,andn
3、otrepeat.EveryqualifiedSudokupuzzlesonlyhaveoneuniqueanswer,butalsoasabasisforreasoningmethod,nosolutionoranysolutionquestionsareunqualified.WithAndroidpoweredsmartphonespopularinChina,nomatterwhen,nomatterwhere,palyingsudokugameinthesmartphonebecomeaconvenientnewdemands.Sudokuerroroccurs,orthesteps
4、youmusttakeastepbackanderasethefiguresalreadyfilled.onthesmartphonesudokucanbemodifiedinacellnumber.Sudokurulesneedtobebasedontheexistingnumberofreasoningjudgment,notonlyhasastronginterest,butalsotoexerciseourabilitytothinklogically.ThisstudyisdesignedaSudokugamesoftwaretorunontheAndroidplatform.Usi
5、ngJavalanguageandrunsontheAndroidoperatingsystem,toachievethebasicfunctionsofSudoku.Sudokuisamathpuzzlegameplayedwithpaperandpen.Accordingtothefilled9x9diskwithknownfigures,playersneedtoreasonoutotherfigures,whichmustmeeteachrow,eachcolumn,eachsmallnineintrauterinefigures1to9inclusive,andnotrepeat.E
6、veryqualifiedSudokupuzzlehasandonlyhasoneuniqueanswer.Asabasisforreasoningmethod,nosolutionoranyothersolutionquestionsareunqualified.WiththerapidpopularizationofandroidpoweredsmartphonesinChina,nomatterwhenorwhere,palyingsudokugameinthesmartphonebecomesanewfashion.WhenSudokuerroroccurs,youmusttakeas
7、tepbackanddeletethefiguresalreadyfilled.PlayingSudokugameonthesmartphone,youcanconvenientlymodifythenumbers.Sudokurulesmustbaseontheexistingnumberofreasoningjudgment,whichnotonlyhaveastronginterest,butalsoexerciseourlogicalthinkingability.ThispaperhasdesignedaSudokugamewithJavalanguagerunningonthean
8、droidplatform,whichhasachievedthebasicfunctionsoftheSudokugame.Keywords:Sudoku;Android;mobilegames;Java本科生毕业设计(论文)第一章引言11.1 项目背景11.2 项目目的21.3 主要内容2第二章游戏开发相关技术42.1 Android42.1.1 Android发展历史42.1.2 Android特点与系统架构52.1.3 Android基本组件与项目结构72.1.4 AndroidUI设计与其原理102.2 Java122.2.1 Java简介122.2.2 JavaSE132.3 Ec
9、lipse132.4 AndroidSDK14第三章数独游戏设计163.1 功能需求163.1.1 继续游戏模块163.1.2 开始游戏模块16-i-本科生毕业设计(论文)3.1.3 游戏设置模块163.1.4 游戏完成模块173.1.5 其他模块173.2 游戏架构设计173.3 游戏运行流程18第四章数独游戏实现204.1 开发环境搭建204.1.1 安装JDK和配置Java开发环境204.1.2 SDK和ADT的安装和配置204.2 项目工程文件224.3 游戏主界面模块244.4 游戏关卡选择模块264.5 游戏谜题的存储与导入354.6 游戏状态存储与恢复374.7 游戏界面绘制与逻
10、辑实现384.8 游戏结束检测与信息提示424.9 游戏设置模块464.10 游戏其他模块58第五章总结2参考文献3致谢5-ii-本科生毕业设计(论文)第一章引言1.1 项目背景2007年11月5日,距离苹果发布第一代iPhone手机仅四个月,谷歌公司正式公布Android操作系统,并且宣布与34家手机厂商、运营商成立“开放手机联盟”(OHA,自此基于Linux内核的Android系统正式登上历史舞台。Android平台自2010年以来呈现出突飞猛进的发展势头,在全球智能手机市场中所占份额从不到10%路猛增至50%Z上。2011年,全球智能手机销量首次超过PC电脑的销量。Android已经成为
11、全球智能手机市场的领跑者,截至2012年第一季度的市场份额已超过50%在这样的情况下,基于Android平台的应用也迅速增长。2012年2月数据显示,AndroidMarket上的应用程序数量突破45万个,AndroidMarket的累计下载量已经突破130亿次,在谷歌电子市场登记的Android开发者已达10W名,Android设备每天激活量达到85万台。很显然,在这样的市场环境下,Android手机移动游戏开发成为一大产业,也是众多手机用户娱乐的主要项目。数独游戏在日本非常流行,在地铁车厢和候车室里,每天都可以看到人们埋头于游戏的情景,甚至有专门的“数独”游戏机出现。除此之外,很多杂志和报
12、纸上的游戏专版也有数独栏目,不过相对于使用笔和纸来享受数独的乐趣,显然使用手机来玩游戏更具有优势。首先,游戏出现错误时,不再需要橡皮擦擦除可能填错的数字,可以使用键盘随时更改已经填入的数字;其次,免除了找谜题,打印谜题等麻烦步骤,游戏中存储的数独谜题,能够提供给玩家随时随地玩-1-本科生毕业设计(论文)数独游戏的新享受。本论文即基于此背景而开展的。1.2 项目目的随着智能手机的普及,越来越多的普通民众习惯于在手机上完成他们想要做的事情,获取他们想了解的信息,当然,游戏作为一大娱乐项目,从电脑PC端转移到手机移动端,也不是一件稀奇的事情。数独具有庞大的群众基础,简单容易上手,又具有寓教于乐的特点
13、,Android应用开发技术的成熟使也得在基于Android系统的手机上开发一款数独游戏成为可能。本项目的目的是在时下最流行的手机操作系统上开发一款数独游戏,使得玩家可以随时随地方便的体验数独的乐趣。同时,提高自己的实践动手能力和对事物的理解能力。通过此课题的研究,为今后基于Android手机的游戏开发打好基础。1.3 主要内容数独游戏有广泛的用户群,游戏本身也很受欢迎。如何运用Android游戏开发技术实现一款具有谜题难度选择,谜题题目选择,玩法控制等功能的数独游戏,是本论文的主要研究内容。论文具体章节安排如下:第一章,引言。主要介绍课题的背景和目的。第二章,游戏开发相关技术。主要介绍使用J
14、ava进行游戏开发所涉及的相关技术以及开发工具。第三章,数独游戏设计。对数独游戏进行需求分析,以及介绍数独游-2-本科生毕业设计(论文)戏的系统结构,流程图。第四章,数独游戏实现。本章节是本论文的主要部分,详细介绍数独游戏开发中各种技术的运用实现,并对游戏核心代码进行讲解。第五章,数独游戏测试与分析。主要是对本系统设计与实现的游戏功能以及玩法进行测试并分析,确保游戏的正确运行。第六章,总结。对课题的研究成果进行总结。-3-本科生毕业设计(论文)第二章游戏开发相关技术2.1 Android2.1.1 Android发展历史Android一词的本义指“机器人”,最初是由AndyRubin创造的,具
15、最初目标是把Android打造成一个可以对所有软件设计人员开放的移动终端平台。2005年Google公司完成了其发展史上最成功的收购,抢先收购了Android。2007年11月5日Google宣布与其他34家手机制造商,包括摩托罗拉、华为、宏达电、三星、LG等著名企业组成开放手机联盟(OpenHandsetAlliance,OHA)现在已经增加到50家。OH城员包括电信运营商,半导体芯片商,手机硬件制造商,软件厂商以及商品化公司,通过联盟各个合作方的努力,建立了移动通信领域新的合作环境,促进了创新移动设备的开发,创造了目前移动平台实现的用户体验7。2007年11月12日,谷歌发布Android
16、SD颌览版,这是第一个对外公布的AndroidSDK,为发布正式版收集用户反馈。2008年4月17日,谷歌举办开发者竞赛。2008年8月28日,谷歌开通AndroidMarket,供Android手机下载需要使用的应用程序。2008年9月23日,发布AndroidSDKV1.0版,这是第一个稳定的SDK版本。2008年10月21日,谷歌开放Android平台的源代码。2008年10月22日,第一款Android手机T-MobileG1在美国上市,-4-本科生毕业设计(论文)由中国台湾的宏达电制造。2009年2月,发布AndroidSDKv1.1版。发展至今,已发布AndroidSDKv4.2版
17、7。2.1.2 Android特点与系统架构Android基于Linux技术开发,由Linux内核、中间件、用户界面和应用程序组成,允许开发人员自由获得、修改源代码。是第一个可以完全定制、免费、开放的手机平台。Android系统具有如下5个特点:1 .开放性。Google与开放手机联盟合作开发了Android。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。2 .应用程序无界限。Android上的应用程序可以通过标准API访问核心移动设备功能。通过互联网,应用程序可以申明它们
18、的功能供其他应用程序使用。3 .应用程序是在平等条件下创建的。移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕程序这样的核心组件。4 .应用程序可以轻松嵌入网络。应用程序可以轻松地嵌入HTMLJavaScript和样式表,还可以通过WebViewfi示网络内容。5 .应用程序可以并行运行。Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知以引起注-5-本科生毕业设计(论文)意1。Android系统架构采用软件栈的架构,共分为4层,从高到低分别是应用程序层、应用程序框架层、中间件层和Linux内核层。1 .应用层。是指用Java语言编
19、写的运行在Android系统上的程序,Google在Android系统中捆绑了一些核心应用,如Email客户端、SMSS消息程序、通讯录、地图、浏览器等。2 .应用框架层。这一层是编写Google发布的核心应用时所使用的API框架,同时提供组件重用机制,开发人员可以使用这些框架来开发自己的应用,从而简化程序开发架构设计。Android提供了如下组件:活动管理器(ActivityManager)窗口管理器(WindowManager)、内容提供者(ContentProvider)、视图(View)、包管理器(PackageManager)、通信管理器(TeleghonyManager)位置管理器
20、(LocationManager)、资源管理器(ResourceManager)、通知管理器(NotificationManager)。3 .中间件层。中间价层由函数库和Android运行时构成。函数库主要提供一组基于C/C+的函数,如SurfaceManage、MediaFrameworkSQLite等函数库。当使用Android应用框架时,Android系统会调用中间件层的C/C+库来支持我们使用的组件,使其能更好的满足程序开发的需要。Android运行时包括核心库和Dalvik虚拟机两部分。核心库主要提供Android系统的特有函数功能和Java语言函数功能;Dalvik虚拟机主要实现基
21、于Linux内核的线程管理和底层内存管理7。4 .Linux内核层。Android的核心系统服务基于Linux2.6内核。内核提供安全机制、内存管理、进程管理、网络协议栈和驱动程序等。Linux内核-6-本科生毕业设计(论文)同时也作为硬件和其他软件栈之间的抽象层1框架结构图6如图2,1所示。APPLICATIONSHomeConcjctiPhoneBrowserApplicationFrameworkActwirtyManagerViewWindowCeMeMMflfWgcrProviderPacks非ManaeerTelephonyMinagerResQurceManagerLlBRARI
22、ES丸出mMin超k匚MWM-SQLikFn册MarkLocananNccificiEianManagerManajerAmoroidRuntimeCaneLberici,丽?品1,MadiineOpcnGL|ESFreeTypeWebKitDhpUyDriverLINUXKERNELCameraDriverFlashMtmoryDriwrBinder(IPC)DriverKj&ypadDfrvtfW)FiDrivtfATPcftwDrivers.Marim1PBmcnt图2.1Android系统结构图2.1.3Android基本组件与项目结构Android平台与其他很多计算机平台上的应用程序
23、不同,Android应用程序没有唯一的启动入口(如C语言中的main()函数入口),一个Android应用是由多个不同的组件组合而成,组件之间通过Intent来实现通信。Android系统最重要的组件包括Activity、Service、BroadcastReceiver和ContentProvider等,此外还包括专门负责在基本组件之间传递消息的Intent组件。所有这些组件都必须在程序的主配置文件AndroidManifest.xml中声明。下面分别来介绍这些基本组件:(1)Activity-7-本科生毕业设计(论文)Activity是应用程序的表示层。应用程序的每个屏幕显示都是通过继承和
24、扩展基类Activity来实现的。Activity利用View来实现应用程序的GUI(GraphicalUserInterface,用户图形界面),而我们的手机用户则直接通过GUI和应用程序进行交互。如应用程序通过GUI向用户显示信息,用户通过GUI向应用程序发出指令和相应操作。(2)Service与Activity相反,Service没有可见的用户界面,但Service的特点是能长时间在后台运行。它是不能与用户交互,不能自己启动的运行在后台的程序,应用退出时,Service进程并没有结束,它任然在后台运行。Service是具有一段长生命周期且没有用户界面的程序。典型的应用就是在后台播放音乐和
25、下载文件的功能。(3)BroadcastReceiverBroadcastReceiver是用户接受广播通知的组件。广播是一种同时通知多个对象的事件通知机制。Android中的广播通知可以来自系统,可以来自普通应用程序。很多事件都可能导致系统广播,比如手机所在时区发生变化,电池电量的变化,系统语言设置的变化等等。而普通应用程序发出通知的典型应用就是在一个文件下载完毕之后通知其他的应用程序。(4)ContentProviderContentProvider是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用的程序之间实现数据共享。在Android中,ContentProvider
26、是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取、操作数据。系统也提供了音频、视频、图像、个人联系信息-8-本科生毕业设计(论文)等几个常用的ContentProvider。可以通过创建自己的ContentProvider类,来公开自己的私有数据,或者可以将这些数据拥有控制、写入的权限时将这些数据添加到ContentProvider中来实现共享1。在建立Android项目的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。下面逐一介绍:l.src源代码目录:该目录存放Android应用程序所有的源代码,该目录项有不同的包,包中对应开发的
27、源程序,开发人员主要精力都集中在开发src目录下内容。2 .gen文件夹目录:该目录存放了Eclipse的ADT插件自动生成的R.java文件。实际上R.java定义了一个R类,它包含了对drawablelayout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。该类由系统自动生成,不允许修改。3 .android.jar:该文件是Android程序所能引用的函数库文件,Android通过平台所支持API都包含在这个文件中。4 .assets目录:用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文件。此目录中的资源不能被R.java文件索引。
28、,所以只能以字节流的形式读取。一般情况下为空。5 .res资源目录:该目录下定义了drawablelayout及values3个目录。drawable目录主要用于存放图片资源。layout目录用来保存与用户界面相关的布局文件。values目录保存参数描述文件,包括字符串(string.xml)、颜色(color.xml)、样式(arrays.xml)等。-9-本科生毕业设计(论文)6 .AndroidManifest.xml文件:AndroidManifest.xml是XMLM式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用
29、程序名称、图标、包名称、模块组成、授权和SDKt低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。只有在AndroidManifest.xml文件中声明的Activity才能在用户界面中显示,尤其是Activity、IntentReceiver、Service及ContentProvider,凡是需要用到的组件都要在此注册2。7 .perties文件:该文件记录了Android工程的相关设置,该文件不能手动修改,需右键单击工程名称,选择“Properties”进行修改。在perties文件中只有第1
30、2行是有效代码,说明Android程序的编译目标,即AndroidAPI版本7。2.1.4AndroidUI设计与其原理用户界面(UI)是应用程序和用户之间联系的桥梁。Android的UI框架足够强大,能够创建复杂的带有图形和动画的UI,同时它也足够灵活,能够从小屏幕的手持设备扩展到平板电脑以及电视8。Android的UI设计方法有两种:过程性设计和声明性设计。过程性设计是指用代码设计用户界面。另一方面,声明性设计不涉及任何代码9。过程性设计通常使用View和ViewGroup对象构建而成,所有的图像元素都是View的子类。一个Activity界面可以包含多个View和ViewGroup,通过
31、布局的组合、嵌套,实现更灵活、更完美的界面。构成Activity的结构图如图4.2所示。-10-本科生毕业设计(论文)图4.2View和ViewGroup混合布局的Activity界面8声明性设计通常使用设计风格类似于HTML勺XMLfe记语言实现。使用XML布局的元素可以是View或者ViewGroup。通过布局的组合嵌套,同样可以完成复杂多样的界面设计。下面是一个简单的水平线性布局的代码。当然,只有布局是不能完成游戏功能的,还需要绑定事件监听。下面-11-本科生毕业设计(论文)是常用的一些事件监听方法。ClassClickEvnetimplementsOnClickListenerpubl
32、icbooleanonKeyDown(intkeyCode,KeyEventevent)publicBooleanonTouchEvent(MotionEventevent)2.2Java2.2.1 Java简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaMER勺总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专用社群。在全球云计算
33、和移动互联网的产业环境下,Java更具备了显著优势和广阔前景4。Java是一个纯的面向对象的程序设计语言,它继承了C+语言面向对象技术的核心,Java舍弃了C+语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)、枚举等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得开发人员不用再担心内存溢出等问题4。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface,简称API)构成。Java具有与平台无关的特性,依赖
34、于Java虚拟机实现。Java文件被编译成一种与机-12-本科生毕业设计(论文)器无关的字节码格式。这种字节码格式在Java虚拟机上运行,能够在配置有Java运行环境的任意机器上执行。也就是说,Java程序的运行不依赖于具体的操作系统和硬件平台,不管操作系统属于WindowsLinux还是MacOS只要配置有Java运行环境,Java程序即可实现一次编译,到处运行。2.2.2 JavaSEJavaSE(JavaPlatform,StandardEdition)是Java平台标准版的简称,通常被称为J2SE用于开发和部署桌面、服务器以及嵌入式设备和实时环境中的Java应用程序。JavaSE包括用
35、于开发JavaWeb!艮务的类库,同时,JavaSE为JavaEEI供了基础。Android开发也主要是基于JavaSE的类库5。2.3EclipseEclipse是一个开放源代码的、基于Java的、跨平台的集成开发环境(IDE)。最开始是一个开放源代码的软件开发项目,最初由OTI和旧M两家公司的IDE产品开发组创建,起始于1999年4月。目前由旧M牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括BorlandRationalSoftwareRedHat及Sybase等。它主要由Eclipse项目、Eclipse
36、工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成EclipsePlatform、JDT、CD评口PDEJDT支持Java开发、CDT息IC开发、PDEffl来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。-13-本科生毕业设计(论文)Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE)等。Eclipse的插件机制是轻型软件组件化架构。在客户机平
37、台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C+(CDT、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。2.3AndroidSDKAndroidSDK(AndroidSoftwareDevelopmentKit)提供了在Windows/Linux
38、/Mac平台上开发Android应用的开发组件,Android支持所有的平台,具包含了在Android平台上开发移动应用的各种工具集。工具集不仅包括了Android模拟器和用于Eclipse的Android开发工具插件(ADT,而且包括了各种用来调试、打包和模拟器上安装应用的工具。AndroidSDK主要是以Java语言为基础,用户可以使用Java语言来开发Android平台上的软件应用。通过SDKI供的一些工具将其打包成Android平台使用的apk文件,然后用SDK中的模寸器(Emulator)来模拟和测试软件在Android平台上运行情况和效果。AndroidSDK是Google官方提供
39、的Android开发专属软件开发包,-14-本科生毕业设计(论文)AndroidSDKW多个版本,从最初的1.1到现在的4.2。考虑到Android系统市场占有率,本应用兼容的最低版本为2.2,运行版本为4.0版本。-15-本科生毕业设计(论文)第三章数独游戏设计3.1 功能需求本数独游戏主要利用Android游戏开发技术在Windows环境下实现数独游戏基本功能,该系统具备如下需求:3.1.1 继续游戏模块需求总述:保存玩家游戏状态,供玩家下次继续游戏。功能描述1:只有在玩家有中途退出游戏的情况下,才能继续游戏。功能描述2:保存玩家中途退出游戏时的状态值。功能描述3:恢复玩家中途退出游戏时的
40、状态值。3.1.2 开始游戏模块需求总述:玩家可以选择任意难度的任意关卡开始游戏。功能描述1:提供容易,中等,困难游戏难度选择。功能描述2:显示对应难度等级的关卡选择界面。功能描述3:完成游戏界面的设计及功能的实现。3.1.3 游戏设置模块需求总述:对游戏环境及玩法等设置项进行控制。功能描述1:设置游戏音乐的播放与暂停。功能描述2:设置游戏语言的中英文切换。功能描述3:设置是否打开游戏颜色提示。-16-本科生毕业设计(论文)功能描述4:设置是否打开数字输入键盘提示。1.1.4 游戏完成模块需求总述:对游戏是否完成进行检查以及显示游戏完成信息。功能描述1:检测游戏是否完成。功能描述2:设定计分规
41、则,并存储每一关卡的最好成绩。功能描述3:游戏完成时,提示此次分数,并显示提示语与其他信息。功能描述4:提供下一步操作选择,返回关卡选择界面或者继续下一关1.1.5 其他模块需求总述:其他辅助性功能设计。功能描述1:数独谜题的存储与导入。功能描述2:游戏说明。功能描述3:退出游戏。3.2 游戏架构设计根据功能需求分析,本游戏可分为几个主模块,每个主模块又可分为几个子功能模块,具详细结构图如图3.1所示。-17-本科生毕业设计(论文)游戏难度选择恢复保存状态游戏关卡选择音乐设置语言设置颜色提示设置键盘提示设置退出游戏开始玩游戏游戏结束显示信息图3.1数独游戏系统结构图3.3 游戏运行流程根据需求
42、分析,游戏开始模块整个游戏的核心,其他功能都是对调用开始游戏进行配置,以满足不同的用户需求,获得更好的用户体验。系统运行流程图如图3.2所示。-18-本科生毕业设计(论文)图3.2数独游戏系统流程图-19-本科生毕业设计(论文)第四章数独游戏实现4.1 开发环境搭建Android开发可以基于WindowsXP及其以上版本、MacOSLinux等操作系统,本游戏开发是基于windowsXP(32位)系统。开发所需软件如下:JDK:1.7版本。Eclipse:3.6.2版本。AndroidSDK:AndroidSDK2.2。ADT21.1.0。4.1.1 安装JDK和配置Java开发环境(1)登陆
43、,下载最新版JD(这里下载的是jdk1.7版本。(2)安装JDK1.7。(3)安装Eclipse3.6.2。登录/downloads/下载对应Eclipse版本,解压至相应的位置。Eclipse需要在正确安装JDK的操作系统下运行,启动时会自动检测Java运行时环境。当进入欢迎界面时,表示开发Java程序所需的环境搭建成功。4.1.2SDK和ADT的安装和配置(1)安装AndriodSDK从官方网站下载android_sdk_r10_windows.zip并解压。运行SDK-20-本科生毕业设计(论文)Manager.exe,在窗口中选择要安装的And
44、roidSDKTools、AndroidAPI版本及GoogleUSBDriver和SDK文档,选择好之后点击Installpackages,按钮开始下载所选择的安装包。(2)AndroidSDK配置右击“我的电脑”,依次选择“属性”,“高级”,“环境变量”选项。选择“系统变量”中的“Path”的项,点击编辑,将AndroidSDK安装文件夹下的tools文件夹的路径加入到“Path”中,点击确认,完成环境变量配置。(3)安装配置ADT启动Eclipse,点击“Help”菜单,选择“InstallNewsoftware,”项,点击“AddSite,”按钮,输入http:/dl-插件。下载完后重
45、启Eclipse,点击“Window/菜单,依次选择aPreferences”,“Android”点击“Browse,”按钮,选择AndroidSDK的安装路径,点击“Apply”按钮,可以看到AndroidSDK中包含的已下载的AndroidPlatform,最后点击“OK按钮确认。(4)连接调试Android手机ADT安装完成后,进入手机“设置”,找到“开发人员选项”,打开“USB调试”选项。将手机通过USBil1接电脑,电脑提示找到“AndroidCompositeADBinterface”新硬件,按步骤安装手机驱动。安装完成后,打开Eclipse,在左侧的“PackageExplore
46、r”栏中,单击鼠标右键,选择对应的Android-21-本科生毕业设计(论文)Project,找至URunAs,”选项,选择“AndroidAplication”选项卡,在弹出的“AndroidDeviceChooser”窗口中,选择“ChoosearunningAndroiddevice”模式,当存在可以选择的device供程序运行时,表示Eclipse和Android手机已成功连接。连接成功图如图4.1所示图4.1Android手机连接成功图至此,Android应用开发环境搭建基本完毕4.2项目工程文件项目工程文件列表如图4.2所示,展示了本项目的全部源代码文件,通过这个列表可以大致了解本
47、系统的程序实现。-22-本科生毕业设计(论文)Ti号SudokuJ自中src-凸con.SudokuE-JMueicljavaEJFrsfs.jan+团Succiti.java+|_JSudoku,jarF.*jccjm.Sudoku,gamE-,fGameActivit.ysjavaJI-JKeyrad.javaS-,J|PuzileView.jiavaF:9com.Sudoku,levelE12JCuEtoihGall-ery.java+JJGalleryAdapter.java/QLevelActivity.javaETLevelltem,java母己?genGineiatiydJava
48、FlIe由*Android22卧,lkRflfrncadLibruitsJRESystemLibraryji_el,7.0营&AndroidDependencies占?assets由.邑binRI-libE!jn臼mFF&孙im0-drawable-hdpi*icon.png*passed.pngpassing,pngEL5-layout!2Eabout,尤加1I3Cljkeypad,xmlm.匚level.KmlQjmaim.xmli5= 口Etartmairi.xml success,xl-i31+巨?1ayoutland-rawUsamemp3!;maidmp3Ipuzzle,prope
49、rtiSji臼values &arrays,xml1口colors,xmlstrings,xmliriIt:L3values-ilrrCNstrings,xnliriELrxml面Eetttings.xvnl口AndroidHaiifest.wul国default,propertiesipr-giar&cfg:-23-本科生毕业设计(论文)图4.2项目源文件列表4.3游戏主界面模块游戏主界面类名称:Sudoku.java,负责显示游戏下一步操作的界面,提供调用其他类的接口。图4.3为Sudoku.java文件的详细代码结构图,图4.4为游戏主界面,E1,-SudokucoritixiueBut
50、ton:ButtonnawEuttoikButton口settingsEnttonButt丽abcutButtonButtonoexitButtonButtons-t-eoisNwGani:booleanFLEVEL_NVHint44onCreateCBundle):voiiip-令4onResume0:voidOonPfiLUse0:void-SwituhLMguage(Locals)voidt0,ClickEvent三一aonCliuk(Vi-):id+openHewGjmeDialog(Cantext):voidstartGame(int)void+aboutGaineDi.siog(C
51、ontext):void+,BexitGamDialagtjContex:t)voidaonKsyDown(intKeyEvent):bciolean图4.3Sudoku.java详细代码结构图-24-本科生毕业设计(论文)-25-本科生毕业设计(论文)图4.4游戏主界面其中isNewGam菠量用于控制是否显示继续游戏按钮,因为当游戏第一次运行时,显示继续游戏按钮不符合逻辑,设置一个boolean量isNewGam曲于控制主界面显示的XML关键代码如下:if(isNewGamesetContentView(R.layout.startmain);)elsesetContentView(R.la
52、yout.main);)当开始新游戏时,置isNewGame变量为false,当游戏完成时,置isNewGam变量为true。4.4游戏关卡选择模块(1)游戏难度选择游戏关卡选择模块主要包括游戏难度等级选择,游戏关卡的选择等。游戏难度等级选择如图4.5所示,游戏关卡选择界面如图4.6所示。-26-本科生毕业设计(论文)-27-本科生毕业设计(论文)图4.5游戏难度选择界面图4.6游戏关卡选择界面游戏难度选择通过实例化一个AlertDialog来实现,传入定义好的难度数组XML,监听选择的项,将索引值传递给关卡选择类LevelActivity.java。XMQ件及关键代码如下:resourcesxmlns:android=http:stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钛冶炼工QC管理知识考核试卷含答案
- 木地板制造工岗前理论能力考核试卷含答案
- 传输机务员技巧知识考核试卷含答案
- 玻璃制品手工成型工风险识别水平考核试卷含答案
- 联碱洗盐工决策判断测试考核试卷含答案
- 苯乙烯装置操作工纪律能力考核试卷含答案
- 玩具设计师技能安全水平考核试卷含答案
- 热缩材料制造工岗位复试考核试卷含答案
- 环形行程试题附完整答案
- 2026事业单位工勤技能-宁夏-宁夏垃圾清扫与处理工一级(高级技师)历年参考题库含答案详解
- 大学廉政知识测试题及一套参考答案
- 试生产调度制度
- 食品安全常识课件
- 乒乓球基本技术
- 2026年娄底职业技术学院单招职业技能测试题库附答案详解
- 全国大学生职业规划大赛《无人驾驶航空器系统工程》专业生涯发展展示【曾获省级一等奖】
- 混凝土预制块护坡施工质量通病防治手册
- T/CI 614-2024COB小间距显示屏可靠性测试与评估规范
- “巴渝工匠”杯第十三届青年职业技能大赛(全媒体运营师赛项)备赛试题库(含答案)
- 工程类行业营销方案(3篇)
- 《植物妈妈有办法》课件 统编版语文二年级上册
评论
0/150
提交评论