基于android数独游戏设计Word文档下载推荐.docx

上传人:b****5 文档编号:19206283 上传时间:2023-01-04 格式:DOCX 页数:34 大小:2.16MB
下载 相关 举报
基于android数独游戏设计Word文档下载推荐.docx_第1页
第1页 / 共34页
基于android数独游戏设计Word文档下载推荐.docx_第2页
第2页 / 共34页
基于android数独游戏设计Word文档下载推荐.docx_第3页
第3页 / 共34页
基于android数独游戏设计Word文档下载推荐.docx_第4页
第4页 / 共34页
基于android数独游戏设计Word文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于android数独游戏设计Word文档下载推荐.docx

《基于android数独游戏设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于android数独游戏设计Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

基于android数独游戏设计Word文档下载推荐.docx

KeyWords:

Android;

Sudoku;

Smartphone

第一章绪论

1.1研究背景

1.1.1手机游戏的发展以及特征

手机游戏,是指用户运行在移动终端的应用程序,具有网络连接功能,能够满足用户随时随地进行游行的需求,它需要一定的硬件环境和一定的系统环境作为其运行的基础。

手机游戏吸引用户最大的特点就是其便利性,由于其是移动终端,所以用户可以随时随地进行游戏。

正是因为其便利性,手机游戏市场有了很大的发展。

在美国,手机游戏作为美国手机用户最喜欢的移动应用之一,在iPhone和Android等智能终端推出后发展迅速。

手机游戏常见的特征可以总结如下:

1.庞大的潜在用户群:

全球在使用的移动电话已经超过10亿部,而且这个数字每天都在不断增加。

在除美国之外的各个发达国家,手机用户都比计算机用户多。

手机游戏潜在的市场比其他任何平台,比如PlayStation和GameBoy都要大。

2.便携性与移动性:

在控制台游戏时代,GameBoy热销的一个原因就是便携性——人们可以随时随地沉浸在自己喜欢的游戏中,还可以随时随地抢购自己喜欢的装备或宠物。

和游戏控制台或者PC相比,手机虽然可能不是一个理想的游戏设备,但毕竟人们总是随时随身携带,这样手机游戏很可能成为人们消遣时间的首选。

手机便携性、移动性的特征更能满足用户随时随地玩游戏的需求,用户利用排队、等车的时间进行游戏,手机游戏碎片化的特性凸显。

调查显示,29.8%的用户在用手机玩游戏以后电脑端玩游戏的时间减少,手机游戏已经开始抢夺电脑游戏时间。

22.4%的用户手机游戏时间越来越长,仅有10%的用户时间变短,手机游戏已逐渐成为一种普遍的娱乐方式。

3.支持网络:

因为手机是网络设备,在一定限制因素下可以实现多人在线游戏。

随着移动网络的发展,移动游戏也越来越多的被大家接受,对于之前长期通知市场的掌机来说造成了不少的冲击。

市场研究公司IDC和AppAnnie报告显示2013年第一季度iOS和Android平台游戏业务营收是掌机的3倍。

1.1.2数独游戏背景

数独的前身为“九宫格”,最早起源于中国。

但当时的算法比现在的更为复杂,要求纵向、横向、斜向上的三个数字之和等于15,而不是数字不能重复。

儒家典籍《易经》中的“九宫图”也是来源于此。

到了18世纪末,瑞士数学家莱昂哈德·

欧文又发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家数字逻辑游戏杂志开始刊登这类游戏,使此类游戏得到良好发展,之后又在日本得到了广泛的传播。

2004年,第一个“数独”游戏被刊登上了英国《泰晤士报》的封面,此时开始数独游戏才真正为世界所知晓。

数独游戏的规则很简单,只需要在空格处填写1~9的数字,并保证每个数字在每个九宫格内只出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。

由于此类游戏操作简单,不需要特定的语言基础,也不需要进行数字运算且可玩性高、锻炼思维、开发大脑,所以很快风靡全球。

1.2Android手机游戏的市场价值

Android是Google开发的基于Linux平台的开源手机操作系统。

它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍[2]。

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

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

Android平台上的游戏相比应用软件,不需要进行严格的市场细分,不需要针对目标用户量身定制。

这是因为游戏玩家的核心需求是统一的,那就是:

娱乐与打发时间(乃至更高层面的竞技需求和群体认同需求),这种需求附着于特定的社会发展阶段,不受地域的限制,甚至于能够穿透文化壁垒。

因此,绝大多数种类的游戏都具备传染性与普适性,每一个售出的游戏都将会点燃周围潜在玩家的激情,最终吞噬整个需求市场。

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

1.3本文主要工作及章节结构

整篇论文共分为六个部分,其主要内容安排如下:

第一章引言。

介绍论文的研究背景、目的和意义。

包括课题的背景资料简介、国内外研究现状和发展趋势、深入地介绍了课题研究的价值。

第二章Android平台概述。

这部分主要是介绍了智能手机系统现状、Android的功能特征、Android系统的特点以及Android的体系结构。

第三章数独游戏的设计。

对游戏相关策划,功能以及架构进行介绍。

第四章数独游戏的实现。

这部分主要介绍了游戏的界面、游戏中的逻辑处理以及该游戏今后的改进和优化。

第五章总结和展望。

对整篇论文加以总结与回顾以及对未来的展望。

第二章Android平台概述

本章将介绍Android这个基于Linux开发平台,首先我们会介绍Android操作系统,然后讲述其特性,接着讲述其系统框架,其次我们会重点介绍其应用程序的构成模块,最后会介绍其生命周期。

2.1Android系统简介

Android是谷歌公司发布的手机操作系统,它是基于Linux平台的开源手机操作系统,谷歌公司将要把其打造为基于移动终端的真正开放的移动软件平台,不仅拥有移动电话所需要的工作软件,,而且在专利权方面能够不侵犯他人权利去推动移动互联网的创新。

谷歌公司为了开发Android,与开放手机联盟进行了合作,手机开放联盟由全球30多家移动开发和手机应用的领先企业组成。

谷歌公司不仅仅和运营商达成了合作关系、而且与设备制造商以及开发商保持长期合作,目的就在于利用其优势建立移动软件平台,其特点是标准化、开放式的。

Android是谷歌公司未来企业战略的一部分,其目的是为了在任何时候任何地点能够提供信息[4]。

2.2Android系统特性

Android系统特性如下所示:

1.应用框架:

Android系统组件,用于开发流程,两个特性:

可重用性和可替代性。

2.Dalvik虚拟机:

在Android系统中,Dalvik虚拟机是一种Java虚拟机,是Google公司自主开发,其代号为Dalvik,占用资源比较小,运行效率比较高。

3.集成浏览器:

引擎WebKit,其特性是开源。

4.优化图形:

强大的自定义二维图形库。

基于OpenGLES1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。

5.SQLite数据库:

SQLite提供结构化的数据存储。

它是一款轻型免费的且开源的数据库,设计目标是嵌入式的。

它具备占用资源低、需要的内存空间少、处理速度较快,并且还支持事务处理功能等优点。

6.多媒体支持:

支持各种通用的音视频和静态图像格式(MPEG4、MP3、JPG、PNG、GIF、AAC、H.264、AMR)。

7.GSM技术:

(依赖硬件)GlobalSystemforMobileCommunications,全球移动通讯系统,俗称全球通,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。

8.蓝牙,EDGE,3G,andWi-Fi:

(依赖硬件)蓝牙和Wi-Fi都是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。

EDGE(EnhancedDataRateforGSMEvolution),是增强型数据速率GSM演进技术。

9.Camera,GPS,Compass,andAccelerometer:

(依赖硬件)GPS(GlobalPositioningSystem),即全球定位系统。

它是一个由覆盖全球的24颗卫星组成的卫星系统。

Compass是一个开放源代码的Java搜索引擎框架。

10.强大的开发环境:

包括一个设备模拟器,调试工具,内存和性能检测,以及Eclipse

11.IDE的开发插件。

Eclipse集成开发环境。

2.3Android操作系统框架结构

Android作为一个开源的移动设备的平台,其软件层次结构自上而下分为四个层次,分别是:

应用程序(Application)、应用程序框架(ApplicationFramework)、各种库(Libraries)和Android运行环境(RunTime)、Linux内核(LinuxKernel)。

图2.1Google手机操作系统平台-Android的架构模型

2.3.1应用程序

突破传统思维,提供更好的用户体验。

Android将会移植一系列的核心应用,包括E-mail客户端,SMS程序,日历,GPS地图,浏览器,联系人等等。

所有的应用程序都是由Java语言完成的。

应用程序是无界限的,可以在平等条件下创建,还可以轻松地嵌入Web,可以并行运行[5]。

2.3.2应用程序框架

Android应用程序由一个或多个组件组成,Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。

由于上层的应用程序是以Java构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:

例如:

Views(视图组件)包括lists(列表),grids(栅格),textboxes(文本框),buttons(按钮)等。

甚至一个嵌入式的Web浏览器。

一个Android的应用程序可以利用应用程序框架中的以下几个部分:

Activity(活动),BroadcastReceiver(广播接收者),Service(服务),ContentProvider(内容提供者)

2.3.3库与运行环境

Android包含一套C/C++库,能被系统中不同的组件使用。

这些功能通过Android应用框架展现给开发人员。

下面列出一些核心库:

(1)SystemClibrary:

从BSD继承来的标准C系统函数库,也是系统中最为底层的库,是专门为基于嵌入式Linux的设备制定的。

(2)MediaFramework:

该库支持多种常用的音频、视频格式的回放和录制,同时支持静态图片文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等。

(3)SurfaceManager:

用于管理不同应用对图形显示子系统和2D和3D图形层的访问。

(4)WebKit:

一个时尚的web浏览器引擎,为Android浏览器和内嵌的webview提供实现。

(5)SGL:

隐藏的2D图形引擎。

(6)3Dlibraries:

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

(7)FreeType:

位图和向量模式的字体绘制。

(8)SQLite:

一个强大的,轻量的关系型数据库引擎,用于所有的应用。

Android运行时Android包含一组核心库,提供了Java语言核心库内的大部分功能。

Android运行环境主要指的是虚拟机技术——Dalvik。

Dalvik虚拟机依赖Linuxkernel来实现一些潜在功能,例如线程和底层内存管理。

Dalvik虚拟机和一般Java虚拟机(JavaVM)不同,它执行的不是Java标准的字节码而是Dalvik可执行格式(.dex)中执行文件,该格式的文件经过优化占用很小的内存。

在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。

二者最大的区别在于JavaVM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)[6]。

显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

每个Android应用程序都在DalvikVM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中。

2.3.4内核

Android使用Linux2.6内核来提供系统的核心服务,例如:

安全机制,内存管理,进程管理,网络堆栈。

Android更多的是需要一些与移动设备相关的驱动程序。

其主要的驱动有:

显示驱动(DisplayDriver)、Flash内存驱动(FlashMemoryDriver)、照相机驱动(CameraDriver)、音频驱动(AudioDriver)、Wi-Fi驱动(CameraDriver)、键盘驱动(KeyBoardDriver)、蓝牙驱动(BluetoothDriver)、BinderIPC驱动(Android一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能)[7]。

2.4Android应用程序构成

Android应用程序与其他很多计算机平台的应用程序不同,他们没有唯一的启动入口,一个Android应用程序是由多个不同组件组合而成,组件间通过Intent实现通信。

Android系统的基本组件包括Activity、Service、BroadcastReceiver和ContentProvider等,要实现组件间通信,还需要Intent消息组件。

并不是每个Android应用程序都必须具备这四个组件,很多时候只需要这四种中的某几种就可以了。

除此之外,应用程序的所有组件还都必须在AndroidManifest.xml中声明[8]。

这是一个XML配置文件,这个配置文件用于定义应用程序的组件、组件的功能及必要条件等。

这个配置文件是任何一个Android应用程序所必需的。

2.4.1Activity

Activity可以说是开发人员最常用的组件,同时也属于Android最基本的组成部分之一。

Android程序中,一般一个Activity代表手机屏幕上的一屏。

举例来说,如果将手机比作一个浏览器,那么一个Activity就相当于一个网页。

在Activity中,可以添加多个视图,然后为这些视图添加一些事件处理。

这些视图可以是按钮、文本框、列表等。

可以看到,Activity的概念和网页的概念相当类似。

一般一个Android应用是由多个Activity组成,同时这些Activity相互之间可以进行跳转,例如,按下某个Activity中的Button按钮后,可能会跳转到一个其他的Activity。

不过和网页跳转稍有不同,Activity之间的跳转可以有返回值,例如,在ActivityA跳转到ActivityB后,那么当ActivityB运行结束时,可能会返回给ActivityA一个值。

在多个Activity交流的过程中,这种返回机制是相当实用的。

当用户进入一个新的屏幕时,之前的屏幕会转入暂停状态,并且保存在历史堆栈中。

正是由于历史堆栈的存在,用户可以通过返回操作,返回到之前打开过的所有屏幕。

Android默认的是将应用程序从开始到当前的每一个屏幕都保存到堆栈中,不过与此同时,Android还提供了很方便的机制,让开发人员自定义某个屏幕是否需要保存到历史堆栈。

Activity的跳转实现,必须借助于Intent类。

因此Intent在Android应用中占据的地位是极其重要的。

简单来说,一个Intent就是对一个将要执行的操作请求的抽象描述。

Intent的描述,主要包含有两个数据结构:

动作(action)和动作对应的数据(data)。

动作有很多种,系统中最常见的动作类型有:

MAIN(表明该Activity是应用程序的入口)、VIEW、PICK、EDIT等等;

而动作对应的数据一般以URI的形式表示,例如:

要查看某一个网页,则需要创建Intent,它的动作类型为VIEW,对应的数据应该是该网页的网址。

值得一提的是,有一个类叫IntentFilter,它是Intent的相关类。

如果说Intent是一个有效的操作请求,那么一个IntentFiler则用于描述一个Activity(或者IntentReceiver等)能够接收哪些Intent的请求。

比如系统浏览器的Activity用于查看某一个网页,那么它用于接收Intent的IntentFilter,要定义类型为VIEW的动作并且能够过滤表示一个网页网址的

URI。

通常IntentFilter要被注册在AndroidManifest.xml文件中。

Activity之间的跳转正是通过解析各种Intent来实现的。

例如一个Activity调用startActivity(intent)方法,希望跳转到其他的Activity时,会触发系统的Intent解析过程,在所有安装的应用程序中已注册的IntentFilter中查找,并最终挑选出能够匹配Intent的Activity。

然后这个新的Activity因为接收到Intent的请求而开始运行,完成Activity的跳转。

这种跳转机制提供了两个关键好处:

(1)操作请求被Intent封装起来,方便Activity重复利用。

(2)相互跳转的多个Activity之间实现了松耦合。

只要IntentFilier保持不变,一个ctivity可以随意修改,而不用担心其他Activity找不到它。

2.4.2BroadcastReceiver

应用程序可以通过BroadcastReceiver监听一个外部的事件,并做出响应。

例如,当应用程序需要对电话呼入这个外部事件做出反应时,可以利用BroadcastReceiver进行处理。

再如,当一个后台下载任务成功的事件发生时,需要提示用户下载完成,仍然可以利用BroadcastReceiver来进行处理。

BroadcastReceiver不能生成UI,也就是说对于用户来说是透明的,用户是看不到的。

BroadcastReceiver只能通过NotificationManager来通知用户这些事件发生了。

BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。

注册完成之后,当事件来临的时候,即使程序没有启动,系统依然可以根据定义,自动启动程序。

各种应用也可以通过使用Context.sendBroadcast()将它们自己的IntentBroadcast广播给其他应用程序。

2.4.3Service

Service是一种程序,它可以运行很长时间,但是它却没有用户界面,不可交互,而且不能自己运行。

它需要通过某一个Activity或者其他的Context对象来调用[12]。

最常见的例子,比如说用户正在运行一个音乐播放器的程序,此时如果想浏览网页,那么,在用户导航到Android的浏览器以后,虽然进入了浏览器屏幕,但是歌曲的播放并没有停止,而是在后台继续播放着。

其实播放的动作正是由播放音乐的Service执行着。

当然,如果需要的话,Service也是可以停止。

通过startService(Intentservice)可以启动一个Service,通过Context.bindService()可以绑定一个Service。

2.4.4ContentProvider

对于数据存储,Android与其他的操作系统有一点不太一样

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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