Android数独游戏论文正文-毕业设计.docx

上传人:wj 文档编号:4843083 上传时间:2023-05-07 格式:DOCX 页数:41 大小:4.64MB
下载 相关 举报
Android数独游戏论文正文-毕业设计.docx_第1页
第1页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第2页
第2页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第3页
第3页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第4页
第4页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第5页
第5页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第6页
第6页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第7页
第7页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第8页
第8页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第9页
第9页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第10页
第10页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第11页
第11页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第12页
第12页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第13页
第13页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第14页
第14页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第15页
第15页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第16页
第16页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第17页
第17页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第18页
第18页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第19页
第19页 / 共41页
Android数独游戏论文正文-毕业设计.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android数独游戏论文正文-毕业设计.docx

《Android数独游戏论文正文-毕业设计.docx》由会员分享,可在线阅读,更多相关《Android数独游戏论文正文-毕业设计.docx(41页珍藏版)》请在冰点文库上搜索。

Android数独游戏论文正文-毕业设计.docx

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

本人郑重声明:

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

除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。

对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。

论文作者签名:

日期:

年月日

摘要

随着手机行业发展蓬勃迅速,尤其是以Android系统为例,越来越多的手机搭载了Android智能系统,该系统是以Linux为基础的开放源代码操作系统,其开放性、不受运营商限制、丰富的硬件支持、良好的扩展性,受到了外界良好评价与使用支持。

Android的系统架构分为三个部分:

应用部分,核心部分,底层部分。

除了上述划分方式以外,从系统实际的架构模型来看,Android则可以分成以下几个层次:

①应用层②框架层③运行时④核心类库⑤硬件抽象层⑥Linux内核。

本文主要阐述了以面向对象的程序开发语言Java,以eclipse为开发工具,基于Android系统开发一款数独游戏。

数独是一种运用纸、笔进行演算的逻辑游戏。

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

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

本程序实现了难度选择功能,计时功能,成绩保存,重来功能等。

关键词:

Android;手机游戏;数独

ABSTRACT

Withthedevelopmentofmobilephoneindustryboomingrapidly,especiallyintheAndroidsystem,forexample,agrowingnumberofmobilephonewithAndroidintelligentsystem,thissystemisbasedontheLinuxopensourceoperatingsystem,itsopenness,withoutbeinglimitedbytheoperators,richhardwaresupport,goodexpansibility,goodevaluationandusethesupportbytheoutsideworld.

Androidsystemarchitectureisdividedintothreeparts:

thepart,thecorepart,thebottompart.Inadditiontotheclassifiedmethods,fromthepointofthearchitectureofthesystemmodel,theAndroidcanbedividedintothefollowingseverallevels:

(1)theapplicationlayer

(2)frameworklayer(3)theruntime(4)coreclasslibraries(5)hardwareabstractionlayer(6)Linuxkernel.

Thisarticlemainlyelaboratedinanobject-orientedprogramminglanguageJava,eclipseasthedevelopmenttool,developedasudokugamebasedonAndroidsystem.Sudokuisakindofusepaperandpenciltocalculuslogicgame.Playersneedtoaccordingto9x9knownfiguresonthedisksurface,reasoningoutalltherestofthespace,andsatisfyeachrow,everycolumn,everyhouseNumbersarethicklinewith1-9,don'trepeat.Everyqualifiedsudokupuzzlehasonlyoneandonlyoneanswer,reasoningmethodsandonthisbasis,thetopicofanykindofsolutionorsolutionisnotqualified.Thisprocedurerealizethefunctionofdifficultchoice,timingfunctions,performancepreservation,tofunction,etc.

Keywords:

Android;Mobilephonegames;Sudoku

目录

第一章绪论 1

1.1游戏背景 1

1.2游戏简介 1

1.2.1数独题目的数量 1

1.2.2数独题目的最少组成 1

1.3手机游戏特征 2

1.4国内外研究现状 3

本章小结 3

第二章技术介绍 4

2.1Android简介 4

2.2Android平台架构及特征 4

2.2.1Android平台特征 4

2.2.2Android平台架构 5

2.3Android应用程序组件 7

本章小结 8

第三章系统分析与设计 9

3.1系统需求分析 9

3.1.1功能需求分析 9

3.1.2安全性需求分析 9

3.2系统的结构设计 9

本章小结 10

第四章基于Android平台数独游戏的实现 11

4.1Android开发环境介绍 11

4.2Android开发平台搭建步骤 11

4.3系统的主要功能 12

4.2游戏中主要类的简要介绍 14

4.2.1难易度选择界面相关类 14

4.2.2数独列表界面相关类 14

4.2.3游戏界面相关类 14

4.3游戏中主要功能详解 15

4.3.1选择难易度界面 15

4.3.2关卡选择界面 17

4.3.3正式游戏界面 23

4.4数独数据库存储 27

4.4.1数据库代码 27

4.4.2数据库关系E-R图 28

4.4.3游戏的数据检测 29

本章小结 29

第五章游戏的测试和运行 30

5.1游戏测试概述 30

5.2测试环境 31

5.3游戏运行结果 31

本章小结 33

第六章总结和展望 34

6.1总结 34

6.2展望 34

结束语 35

致谢 36

参考文献 37

附录

○○○大学○○○届本科毕业设计(论文)

第一章绪论

1.1游戏背景

“九宫格”一词想必大家并不陌生,它作为数独的前身,最早起源于中国。

但九宫格游戏较为复杂,需要从纵向、横向、斜向三个方向的数字之和全部等于15,不适合现在快节奏的生活,所以人们对经典的九宫格游戏进行了改良,形成了数独游戏。

洛书河图是我国目前已发现的最早的九宫格游戏记载,到了18世纪末,瑞士数学家莱昂哈德•欧文又发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家杂志机构也刊登了类似的游戏,从此这个游戏受到了更多的欢迎,之后日本市场也引进了这个游戏,并进行广泛的传播[1]。

2004年,在英国《泰晤士报》上,第一个“数独”游戏被刊登在此报上,从那时起数独游戏才真正为世界所知晓,并且很快风靡全球。

其原因得益于此类游戏操作简单,不需要进行复杂的数字运算且可玩性高、锻炼思维、开发大脑,也不需要特定的语言基础。

1.2游戏简介

1.2.1数独题目的数量

到底有多少个9×9的拉丁方阵呢?

答案是:

5524751496156892842531225600个。

但是由于数独的规则是每行、每列、每个小九宫格都是要1到9之间的不同数字,这与拉丁方阵有很大不同,所以数独的谜题要比拉丁方阵少很多。

直到2005年底,数学家贝米耳(StanleyE.Bammel)与罗思坦(JeromeRothstein)才算出一共有6670903752021072936960种可能的数独谜题[2]。

为了庆贺这一结果,这两个数学家专门写了一份研究报告。

但是在同一个数独中,数独是可以变换的,像行交换、列交换,还有可能是代码交换(比如1和8交换、2和5、3和6……)。

若进行上述变换,用不了几次就很难分清是否来自同一数独了。

为了解决这一难题,西澳大利亚大学教授GordonRoyle博士利用图形理论,研究出了辨别数独变换的方法。

他将数独谜题利用Nauty程序图形的转化来做比对,该研究结果把利用这一方法将宫格内的行交换、列交换、代码交换等变换方法产生的等价题都扣除,最后计算出本质上共有5472730538个不同的数独谜题。

此结果表明数独谜题的数量之大,若全球每天通过互联网和报纸刊登10000个本质上不同的数独谜题,仍需要花上一万多年才能全部罗列完这接近55亿的数独谜题。

1.2.2数独题目的最少组成

好的数独题目要求已知的数字是点对称的,而且谜题要有唯一解甚至已知的数字越少越好。

目前最好的纪录是给定18个数字就可以产生出唯一解的数独谜题。

如果放宽条件到不需要点对称,那么最少可以给定的数字是17个。

许多玩家和学者对数独游戏痴迷不已,当然也包括很多计算机程序人员,他们在网上提供了众多免费下载的数独谜题程序。

例如,才华横溢的数学家和组合学家Zeilberger曾写了一个在Maple上跑的程序供大家解出数独谜题[3],可以发现,难度高的题目不一定给出较少的数字,有时候提供的数字很多但仍然难度很高。

反之,提供的数字少也许反而比较容易解题。

也就是说,谜题的难易程度与提供的数字多少不是绝对相关的,谜题的难易程度和设计者的逻辑思维模式有关[4]。

1.3手机游戏特征

1.易于学习:

既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。

因此手机游戏的控制应当尽量简单,且易于学习。

即便游戏计划的控制方式要求很多很复杂,开发商也应当考虑将其简化。

与主机控制器相比,手机和平板电脑的按键和控制选项更少,这意味着手机游戏开发商需要进行创新。

许多成功游戏的控制都很简单。

比如流行游戏《翼飞冲天》需要的玩家输入便很简单,点击屏幕可以使下坡加速,在上坡的时候放开即可[5]。

2.可中断性:

多任务处理是手机生活方式的基本特征。

在手机设备上,接到电话会导致游戏马上退出,所以在游戏中采用智能中断设置是必要之举。

如果用户在接完电话后发现自己刚才的游戏状态已消失,那么自然不会对游戏产生良好的印象。

将来用户再玩该游戏的可能性也会减小,因为担心再接到电话导致他们前功尽弃。

所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏与工作模式之间顺利切换。

3.基于订阅:

手机游戏的盈利成功取决于他们巨大的使用量。

一开始开发与设计每个游戏都是昂贵的。

如果一个手机游戏开发者要赢利的话,重要的是消耗一个游戏引擎,多个标题,基本的故事情节类似。

基于订阅的游戏是不断产生收入的最好方法。

4.丰富的社会交互:

不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。

对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力与随机性。

在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。

5.好的网络基础设备:

巨额的手机技术研发费用都花在提高设备与网络的可用性与可靠性上面。

因此,手机设备硬件与网络协议与桌面/控制台世界(如全球定位系统(GPS)扩展、条形码扫描仪、与短消息服务(SMS)/多媒体信息服务(MMS)通讯)有着非常大的差别。

好的手机游戏应该利用那些更新的设备特征与网络基础设备的优点。

6.有效利用屏幕实用面积:

任何屏幕上的使用面积都是有限的,开发商必须考虑到这一点。

比如玩《僵尸时代》需要用你的拇指控制两个屏幕上的“虚拟操纵杆”。

这需要占据大片屏幕实用面积,使游戏玩起来较为困难。

平板电脑有着更大的实用面积,但依然会出现上述问题。

如果用平板电脑来玩《僵尸时代》,操纵杆依然很难使用,触控精确性有一定的问题,因为相比手机来说两个操纵杆相隔更远。

7.功能反馈:

由于缺乏按动按键或震动等触觉反馈,手机游戏必须使用不同的方式来告知用户他们的动作已经被游戏接受,它们应当在屏幕上提供不显眼却能够传达信息的反馈。

比如,在手游《无尽之剑》中会高亮玩家按动的屏幕按键[6],并在屏幕上呈现相关文本。

这些信号立马便可以告知玩家攻击或格挡是否成功。

同样,当受到伤害时,所受伤害数值也会显示在屏幕上,同时生命值扣除相应数值。

1.4国内外研究现状

Android操作系统是基于Linux平台的开发的手机操作系统,他是由著名的互联网公司Google公司进行开发的。

Android操作系统包括用户界面、手机操作系统和手机应用程序等移动设备所需要的所有软件能够保证正常的使用,而且Android操作系统不存在和以前手机操作系统上的阻碍移动通信设备上所需创新的所有权障碍,因为他是一个开源的手机操作系统。

Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成[7]。

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

 

Androind操作系统作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。

Android手机操作系统将作为Google扩展移动设备市场的一个奠基石,而后为Google应用的推广起到了良好的作用。

但Android操作系统不会替代谷歌长期以来奉行的移动发展策略:

通过与全球各地的手机制造商和运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品[8]。

本章小结

本章介绍了数独游戏的起源、数独游戏玩法和规则,手机游戏的特征,以及Android系统的国内外现状,希望能让大家对数独有更深入的了解。

第二章技术介绍

2.1Android简介

Android(安卓),是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的OpenHandsetAlliance(OHA,开放手持设备联盟)持续领导与开发中。

Android已发布的最新版本为Android5.0(Lollipop)。

Android系统最初由安迪·鲁宾(AndyRubin)等人开发制作[9],最初开发这个系统的目的是创建一个数码相机的先进操作系统;但是后来发现市场需求不够大,加上智能手机市场快速成长,于是Android被改造为一款面向智能手机的操作系统。

於2005年8月被美国科技企业Google收购。

2007年11月,Google与84家制造商、开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随后,Google以Apache免费开放原始码许可证的授权方式,发布了Android的原码,让生产商推出搭载Android的智能手机,Android后来更逐渐拓展到平板电脑及其他领域上。

2010年末数据显示,仅正式推出两年的Android作业系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统[10]。

2.2Android平台架构及特征

2.2.1Android平台特征

随着科技的发展,移动电话(MobilePhone)正朝着智能化的方向发展,逐步成为多种工具的功能载体,而Android就是这样一个智能手机的平台、一个多种工具的功能载体。

1.通信工具

移动电话的最基本功能为通信功能,因此使用运营商提供的通信网络进行语音通话也是Android平台的最基本功能。

除了传统的语音通话功能外,Android平台还具有短消息功能,以及通常移动电话都具有的个人信息系统管理方面的功能(如电话本等)。

2.网络工具

随着数字业务使用的普遍化,移动电话通常被作为网络工具使用,即移动电话可以完成电脑的部分功能。

而Android平台在网络方面的功能主要包括浏览器、IM(即时信息)、邮件等。

3.媒体播放器

随着多媒体技术的发展应用,在移动电话上进行音频和视频播放已经成为经常使用的功能。

由此,Android平台具有支持更多的音频/视频格式,支持更高分辨率的视频,可更流畅地播放视频,以及支持网络流媒体等功能。

4.媒体获取设备

随着移动电话与媒体获取设备的集成日益增强,Android平台提供了照相机、录音机、摄像机等功能。

5.多类型的连接设备

Android平台提供了多种连接方式,如USB、GPS、红外、蓝牙、无线局域网等。

6.具有友好和绚丽的用户界面

Android平台具有友好的用户界面,使用户容易学习和操作;同时具有绚丽的用户界面,具有良好的视觉效果。

7.可以个性化定制的平台

Android平台针对于用户的个性化需求,提供了全面自定义手机的功能。

除了上述介绍的Android平台的功能以外,其在技术上还具有以下几个方面的特性:

全开放智能移动电话平台;

支持多硬件平台;

使用众多的标准化技术;

核心技术完整、统一;

完善的SDK和文档;

完善的辅助开发工具。

2.2.2Android平台架构

从图2.1我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。

下面分别来讲解各个部分。

图2.1Android操作系统体系结构

1.程序应用

Android连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。

所有的应用程序都是用Java编写的[11]。

2.应用程序框架

开发者完全可以访问核心应用程序所使用的API框架。

该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。

该应用程序重用机制使得组件可以被用户替换。

以下所有的应用程序都由一系列的服务和系统组成,包括:

(1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(textboxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。

(2)内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

(3)一个资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串、图形和分层文件(layoutfiles)。

(4)一个通知管理器(NotificationManager)使得应用程序可以在状态栏中显示客户通知信息。

(5)一个活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。

3.Android程序库

Android包括一个被Android系统中各种不同组件所使用的C/C++集库。

该库通过Android应用程序框架为开发者提供服务。

以下是一些主要的核心库[12]:

(1)系统C库:

一个从BSD继承来的标准C系统函数库(libc),专门为基于EmbeddedLinux的设备定制。

(2)媒体库:

基于PacketVideoOpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。

(3)SurfaceManager:

对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。

(4)LibWebCore:

一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。

(5)SGL:

一个内置的2D图形引擎。

(6)3Dlibraries:

基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

(7)FreeType:

位图(bitmap)和向量(vector)字体显示。

(8)SQLite:

一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。

4.Android运行库

Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。

Dalvik是针对同时高效地运行多个VMs实现的。

Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。

该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行[13]。

Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。

5.Linux内核

Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型[14]。

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

2.3Android应用程序组件

应用程序组件是Android应用程序的基本构建单元。

每个组件是系统进入你的应用程序的不同入口点。

不是所有的组件对于用户都是实际上的入口点,有些是互相依赖的,但是每个组件都有特定的作用——每个都是唯一的构建单元,这些构建单元定义你应用程序的全部行为

这里有6个组件,它们是Android应用程序的基石[15]:

(1)Activities(活动)

应用程序的显示层。

每一个画面对应于你的应用程序,将会是Activity类的扩展。

Activity使用Views去构建UI来显示信息和响应用户的行为。

就桌面开发而言,一个Activity相当于一张Form。

(2)Services(服务)

应用程序中不可见的“工人”。

Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。

它们常用来执行一些需要持续运行的处理,当你的Activity已经不处于激活状态或不可见。

(3)Content(内容)

提供共享的数据存储。

ContentProvider(内容提供器)用来管理和共享应用程序的数据库。

在应用程序间,ContentProvider是共享数据的首选方式。

这意味着,你可以

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2