基于Android平台的数独游戏.docx

上传人:b****6 文档编号:6683408 上传时间:2023-01-08 格式:DOCX 页数:47 大小:981.70KB
下载 相关 举报
基于Android平台的数独游戏.docx_第1页
第1页 / 共47页
基于Android平台的数独游戏.docx_第2页
第2页 / 共47页
基于Android平台的数独游戏.docx_第3页
第3页 / 共47页
基于Android平台的数独游戏.docx_第4页
第4页 / 共47页
基于Android平台的数独游戏.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

基于Android平台的数独游戏.docx

《基于Android平台的数独游戏.docx》由会员分享,可在线阅读,更多相关《基于Android平台的数独游戏.docx(47页珍藏版)》请在冰豆网上搜索。

基于Android平台的数独游戏.docx

基于Android平台的数独游戏

XX科技大学

毕业设计(论文)

 

题目

基于Android平台的数独游戏

作者

学院

专业

学号

指导教师

 

2013年5月20日

XX科技大学

毕业设计(论文)任务书

院系(教研室)

系(教研室)主任:

(签名)年月日

学生姓名:

学号:

专业:

1设计(论文)题目及专题:

基于Android平台的数独游戏

2学生设计(论文)时间:

自2013年1月5日开始至2013年6月6日止

3设计(论文)所用资源和参考资料:

[1]杨丰盛编著.Android应用开发揭秘[M].机械工业出版社,2010-09

[2](美)埃克尔著,陈昊鹏译.Java编程思想,ThinkinginJava[M].机械工业出版社,2007-06:

14

[3](美)JasonOstrander著,刘文斌译.AndroidUI基础教程[M].北京:

人民邮电出版社.2012.10

[4](美)EdBurnette著,田俊静,张波等译.Android基础教程:

第3版:

修订版[M].北京:

人民邮电出版社.2011.06

4设计(论文)应完成的主要内容:

设计并实现基于Android移动终端平台的数独游戏,包括继续游戏模块,新游戏模块,设置模块和其他模块等。

5提交设计(论文)形式(设计说明与图纸或论文等)及要求:

(1)论文思路清晰,条理清楚,中心突出,内容充实,论据充分,结构紧凑,层次分明,图表清晰,格式规范,结论正确;按《湖南科技大学本科生毕业设计(论文)要求与规范》编排、打印文稿;

(2)上交论文(纸质)打印文稿和系统源码(电子版);

6发题时间:

年月日

 

指导教师:

(签名)

学生:

(签名)

XX科技大学

毕业设计(论文)指导人评语

[主要对学生毕业设计(论文)的工作态度,研究内容与方法,工作量,文献应用,创新性,实用性,科学性,文本(图纸)规范程度,存在的不足等进行综合评价]

指导人:

(签名)

年月日

指导人评定成绩:

XX科技大学

毕业设计(论文)评阅人评语

[主要对学生毕业设计(论文)的文本格式、图纸规范程度,工作量,研究内容与方法,实用性与科学性,结论和存在的不足等进行综合评价]

评阅人:

(签名)

年月日

评阅人评定成绩:

XX科技大学

毕业设计(论文)答辩记录

日期:

学生:

学号:

班级:

题目:

提交毕业设计(论文)答辩委员会下列材料:

1设计(论文)说明书共页

2设计(论文)图纸共页

3指导人、评阅人评语共页

毕业设计(论文)答辩委员会评语:

[主要对学生毕业设计(论文)的研究思路,设计(论文)质量,文本图纸规范程度和对设计(论文)的介绍,回答问题情况等进行综合评价]

答辩委员会主任:

(签名)

委员:

(签名)

(签名)

(签名)

(签名)

答辩成绩:

总评成绩:

摘要

数独(Sudoku)是一种运用纸、笔进行演算的数学智力游戏。

玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个小九宫内的数字均含1~9,而且不重复。

每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。

随着搭载Android系统的智能手机在中国的普及,不论何时,不论何地,在智能手机端玩数独游戏成为一种方便快捷的新需求。

数独游戏出现错误时,必须回退一步或几步并擦除已经填入的大部分数字,在智能手机上玩数独游戏可以随时修改单元格中的数字。

数独游戏规则需要根据已有数字进行推理判断,不仅具有很强的趣味性,而且能锻炼我们的逻辑思维能力。

本课题研究设计一款运行在Android平台的数独游戏软件。

该课题主要使用Java语言开发,运行于Android操作系统,实现了数独游戏的基本功能。

关键词:

数独;Android;手机游戏;Java

ABSTRACT

Sudokuisamathpuzzlegameplayedwithpaperandpen.Playersneedtobefilled9×9diskwithknownfigures,reasoningotherfigureout,andmeeteachrow,eachcolumn,eachsmallnineintrauterinefigures1to9inclusive,andnotrepeat.EveryqualifiedSudokupuzzlesonlyhaveoneuniqueanswer,butalsoasabasisforreasoningmethod,nosolutionoranysolutionquestionsareunqualified.

WithAndroidpoweredsmartphonespopularinChina,nomatterwhen,nomatterwhere,palyingsudokugameinthesmartphonebecomeaconvenientnewdemands.Sudokuerroroccurs,orthestepsyoumusttakeastepbackanderasethefiguresalreadyfilled.onthesmartphonesudokucanbemodifiedinacellnumber.Sudokurulesneedtobebasedontheexistingnumberofreasoningjudgment,notonlyhasastronginterest,butalsotoexerciseourabilitytothinklogically.

ThisstudyisdesignedaSudokugamesoftwaretorunontheAndroidplatform.UsingJavalanguageandrunsontheAndroidoperatingsystem,toachievethebasicfunctionsofSudoku.

Sudokuisamathpuzzlegameplayedwithpaperandpen.Accordingtothefilled9×9diskwithknownfigures,playersneedtoreasonoutotherfigures,whichmustmeeteachrow,eachcolumn,eachsmallnineintrauterinefigures1to9inclusive,andnotrepeat.EveryqualifiedSudokupuzzlehasandonlyhasoneuniqueanswer.Asabasisforreasoningmethod,nosolutionoranyothersolutionquestionsareunqualified.

WiththerapidpopularizationofandroidpoweredsmartphonesinChina,nomatterwhenorwhere,palyingsudokugameinthesmartphonebecomesanewfashion.WhenSudokuerroroccurs,youmusttakeastepbackanddeletethefiguresalreadyfilled.PlayingSudokugameonthesmartphone,youcanconvenientlymodifythenumbers.Sudokurulesmustbaseontheexistingnumberofreasoningjudgment,whichnotonlyhaveastronginterest,butalsoexerciseourlogicalthinkingability.

ThispaperhasdesignedaSudokugamewithJavalanguagerunningontheandroidplatform,whichhasachievedthebasicfunctionsoftheSudokugame.

Keywords:

Sudoku;Android;mobilegames;Java

第一章引言

1.1项目背景

2007年11月5日,距离苹果发布第一代iPhone手机仅四个月,谷歌公司正式公布Android操作系统,并且宣布与34家手机厂商、运营商成立“开放手机联盟”(OHA),自此基于Linux内核的Android系统正式登上历史舞台。

Android平台自2010年以来呈现出突飞猛进的发展势头,在全球智能手机市场中所占份额从不到10%一路猛增至50%以上。

2011年,全球智能手机销量首次超过PC电脑的销量。

Android已经成为全球智能手机市场的领跑者,截至2012年第一季度的市场份额已超过50%。

在这样的情况下,基于Android平台的应用也迅速增长。

2012年2月数据显示,AndroidMarket上的应用程序数量突破45万个,AndroidMarket的累计下载量已经突破130亿次,在谷歌电子市场登记的Android开发者已达10W名,Android设备每天激活量达到85万台。

很显然,在这样的市场环境下,Android手机移动游戏开发成为一大产业,也是众多手机用户娱乐的主要项目。

数独游戏在日本非常流行,在地铁车厢和候车室里,每天都可以看到人们埋头于游戏的情景,甚至有专门的“数独”游戏机出现。

除此之外,很多杂志和报纸上的游戏专版也有数独栏目,不过相对于使用笔和纸来享受数独的乐趣,显然使用手机来玩游戏更具有优势。

首先,游戏出现错误时,不再需要橡皮擦擦除可能填错的数字,可以使用键盘随时更改已经填入的数字;其次,免除了找谜题,打印谜题等麻烦步骤,游戏中存储的数独谜题,能够提供给玩家随时随地玩数独游戏的新享受。

本论文即基于此背景而开展的。

1.2项目目的

随着智能手机的普及,越来越多的普通民众习惯于在手机上完成他们想要做的事情,获取他们想了解的信息,当然,游戏作为一大娱乐项目,从电脑PC端转移到手机移动端,也不是一件稀奇的事情。

数独具有庞大的群众基础,简单容易上手,又具有寓教于乐的特点,Android应用开发技术的成熟使也得在基于Android系统的手机上开发一款数独游戏成为可能。

本项目的目的是在时下最流行的手机操作系统上开发一款数独游戏,使得玩家可以随时随地方便的体验数独的乐趣。

同时,提高自己的实践动手能力和对事物的理解能力。

通过此课题的研究,为今后基于Android手机的游戏开发打好基础。

1.3主要内容

数独游戏有广泛的用户群,游戏本身也很受欢迎。

如何运用Android游戏开发技术实现一款具有谜题难度选择,谜题题目选择,玩法控制等功能的数独游戏,是本论文的主要研究内容。

论文具体章节安排如下:

第一章,引言。

主要介绍课题的背景和目的。

第二章,游戏开发相关技术。

主要介绍使用Java进行游戏开发所涉及的相关技术以及开发工具。

第三章,数独游戏设计。

对数独游戏进行需求分析,以及介绍数独游戏的系统结构,流程图。

第四章,数独游戏实现。

本章节是本论文的主要部分,详细介绍数独游戏开发中各种技术的运用实现,并对游戏核心代码进行讲解。

第五章,数独游戏测试与分析。

主要是对本系统设计与实现的游戏功能以及玩法进行测试并分析,确保游戏的正确运行。

第六章,总结。

对课题的研究成果进行总结。

第二章游戏开发相关技术

2.1Android

2.1.1Android发展历史

Android一词的本义指“机器人”,最初是由AndyRubin创造的,其最初目标是把Android打造成一个可以对所有软件设计人员开放的移动终端平台。

2005年Google公司完成了其发展史上最成功的收购,抢先收购了Android。

2007年11月5日Google宣布与其他34家手机制造商,包括摩托罗拉、华为、宏达电、三星、LG等著名企业组成开放手机联盟(OpenHandsetAlliance,OHA)。

现在已经增加到50家。

OHA成员包括电信运营商,半导体芯片商,手机硬件制造商,软件厂商以及商品化公司,通过联盟各个合作方的努力,建立了移动通信领域新的合作环境,促进了创新移动设备的开发,创造了目前移动平台实现的用户体验[7]。

2007年11月12日,谷歌发布AndroidSDK预览版,这是第一个对外公布的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在美国上市,由中国台湾的宏达电制造。

2009年2月,发布AndroidSDKv1.1版。

发展至今,已发布AndroidSDKv4.2版[7]。

2.1.2Android特点与系统架构

Android基于Linux技术开发,由Linux内核、中间件、用户界面和应用程序组成,允许开发人员自由获得、修改源代码。

是第一个可以完全定制、免费、开放的手机平台。

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

1.开放性。

Google与开放手机联盟合作开发了Android。

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

2.应用程序无界限。

Android上的应用程序可以通过标准API访问核心移动设备功能。

通过互联网,应用程序可以申明它们的功能供其他应用程序使用。

3.应用程序是在平等条件下创建的。

移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕程序这样的核心组件。

4.应用程序可以轻松嵌入网络。

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

5.应用程序可以并行运行。

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

Android系统架构采用软件栈的架构,共分为4层,从高到低分别是应用程序层、应用程序框架层、中间件层和Linux内核层。

1.应用层。

是指用Java语言编写的运行在Android系统上的程序,Google在Android系统中捆绑了一些核心应用,如Email客户端、SMS短消息程序、通讯录、地图、浏览器等。

2.应用框架层。

这一层是编写Google发布的核心应用时所使用的API框架,同时提供组件重用机制,开发人员可以使用这些框架来开发自己的应用,从而简化程序开发架构设计。

Android提供了如下组件:

活动管理器(ActivityManager)、窗口管理器(WindowManager)、内容提供者(ContentProvider)、视图(View)、包管理器(PackageManager)、通信管理器(TeleghonyManager)、位置管理器(LocationManager)、资源管理器(ResourceManager)、通知管理器(NotificationManager)。

3.中间件层。

中间价层由函数库和Android运行时构成。

函数库主要提供一组基于C/C++的函数,如SurfaceManage、MediaFramework、SQLite等函数库。

当使用Android应用框架时,Android系统会调用中间件层的C/C++库来支持我们使用的组件,使其能更好的满足程序开发的需要。

Android运行时包括核心库和Dalvik虚拟机两部分。

核心库主要提供Android系统的特有函数功能和Java语言函数功能;Dalvik虚拟机主要实现基于Linux内核的线程管理和底层内存管理[7]。

4.Linux内核层。

Android的核心系统服务基于Linux2.6内核。

内核提供安全机制、内存管理、进程管理、网络协议栈和驱动程序等。

Linux内核同时也作为硬件和其他软件栈之间的抽象层[1]。

框架结构图[6]如图2.1所示。

图2.1Android系统结构图

2.1.3Android基本组件与项目结构

Android平台与其他很多计算机平台上的应用程序不同,Android应用程序没有唯一的启动入口(如C语言中的main()函数入口),一个Android应用是由多个不同的组件组合而成,组件之间通过Intent来实现通信。

Android系统最重要的组件包括Activity、Service、BroadcastReceiver和ContentProvider等,此外还包括专门负责在基本组件之间传递消息的Intent组件。

所有这些组件都必须在程序的主配置文件AndroidManifest

.xml中声明。

下面分别来介绍这些基本组件:

(1)Activity

Activity是应用程序的表示层。

应用程序的每个屏幕显示都是通过继承和扩展基类Activity来实现的。

Activity利用View来实现应用程序的GUI(GraphicalUserInterface,用户图形界面),而我们的手机用户则直接通过GUI和应用程序进行交互。

如应用程序通过GUI向用户显示信息,用户通过GUI向应用程序发出指令和相应操作。

(2)Service

与Activity相反,Service没有可见的用户界面,但Service的特点是能长时间在后台运行。

它是不能与用户交互,不能自己启动的运行在后台的程序,应用退出时,Service进程并没有结束,它任然在后台运行。

Service是具有一段长生命周期且没有用户界面的程序。

典型的应用就是在后台播放音乐和下载文件的功能。

(3)BroadcastReceiver

BroadcastReceiver是用户接受广播通知的组件。

广播是一种同时通知多个对象的事件通知机制。

Android中的广播通知可以来自系统,可以来自普通应用程序。

很多事件都可能导致系统广播,比如手机所在时区发生变化,电池电量的变化,系统语言设置的变化等等。

而普通应用程序发出通知的典型应用就是在一个文件下载完毕之后通知其他的应用程序。

(4)ContentProvider

ContentProvider是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用的程序之间实现数据共享。

在Android中,ContentProvider是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取、操作数据。

系统也提供了音频、视频、图像、个人联系信息等几个常用的ContentProvider。

可以通过创建自己的ContentProvider类,来公开自己的私有数据,或者可以将这些数据拥有控制、写入的权限时将这些数据添加到ContentProvider中来实现共享[1]。

在建立Android项目的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。

下面逐一介绍:

1.src源代码目录:

该目录存放Android应用程序所有的源代码,该目录项有不同的包,包中对应开发的源程序,开发人员主要精力都集中在开发src目录下内容。

2.gen文件夹目录:

该目录存放了Eclipse的ADT插件自动生成的R.java文件。

实际上R.java定义了一个R类,它包含了对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。

该类由系统自动生成,不允许修改。

3.android.jar:

该文件是Android程序所能引用的函数库文件,Android通过平台所支持API都包含在这个文件中。

4.assets目录:

用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文件。

此目录中的资源不能被R.java文件索引。

,所以只能以字节流的形式读取。

一般情况下为空。

5.res资源目录:

该目录下定义了drawable、layout及values3个目录。

drawable目录主要用于存放图片资源。

layout目录用来保存与用户界面相关的布局文件。

values目录保存参数描述文件,包括字符串(string.xml)、颜色(color.xml)、样式(arrays.xml)等。

6.AndroidManifest.xml文件:

AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件。

只有在AndroidManifest.xml文件中声明的Activity才能在用户界面中显示,尤其是Activity、IntentReceiver、Service及ContentProvider,凡是需要用到的组件都要在此注册[2]。

7.default.properties文件:

该文件记录了Android工程的相关设置,该文件不能手动修改,需右键单击工程名称,选择“Properties”进行修改。

在default.properties文件中只有第12行是有效代码,说明Android程序的编译目标,即AndroidAPI版本[7]。

2.1.4AndroidUI设计与其原理

用户界面(UI)是应用程序和用户之间联系的桥梁。

Android的UI框架足够强大,能够创建复杂的带有图形和动画的UI,同时它也足够灵活,能够从小屏幕的手持设备扩展到平板电脑以及电视[8]。

Android的UI设计方法有两种:

过程性设计和声明性设计。

过程性设计是指用代码设计用户界面。

另一方面,声明性设计不涉及任何代码[9]。

过程性设计通常使用View和ViewGroup对象构建而成,所有的图像元素都是View的子类。

一个Activity界面可以包含多个View和ViewGroup,通过布局的组合、嵌套,实现更灵活、更完美的界面。

构成Activity的结构图如图4.2所示。

图4.2View和ViewGroup混合布局的Activity界面[8]

声明性设计通常使用设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1