1、基于Android的数独游戏设计 学生姓名班级学号专 业计算机科学与技术课程设计题目基于Android的数独游戏设计评语组长签字:成绩日期 2014 年 月 日课程设计任务书学 院信息科学与工程学院专 业计算机科学与技术学生姓名班级学号课程设计题目基于Android的数独游戏设计实践教学要求与任务: 能够运用Java语言设计数独游戏,实现基本游戏效果。会搭建Android的开发环境,并学会运用Eclipse开发工具相关Android程序进行开发;深入了解Android项目生成的文件之间的关系和它们的作用。工作计划与进度安排:第一阶段:20学时。设计阶段。学生根据所选题目,查阅有关 资料,综合所
2、学的理论知识,完成整体设计及具体设计。第二阶段:8学时。调试测试阶段。上机调试测试,要求学生务 必认真,思想高度集中,调试成功后,整理、编写设计资料及实验 报告。 第三阶段:4学时。验收答辩。指导教师: 2014 年 月 日专业负责人: 2014 年 月 日学院教学副院长: 2014 年 月 日摘要移动互联网时代的到来极大的改变了我们的生活,而Android是一种以Linux为基础的开放源码操作系统迅速占领了智能机操作系统,所以在android环境下开发显得尤为必要。Android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功
3、能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。本文就在分析讨论Android手机软件开发技术原理的基础上,为用户开发出基于Android平台的数独游戏的软件。通过对Android系统架构和应用开发进行初步研究,设计一款数独游戏。在对系统进行详细需求分析的基础上,确定了系统的功能和性能要求,对游戏的开机动画,菜单界面、屏幕绘制、时间控制、布局算法等进行了设计。本文详细介绍了在Android平台上以Java为语言编写游戏的过程,最终实现了一个界面友好、操作简单的手机益智游戏。关键词:Android 数独 智能机1、开发工具与环境Android 是谷歌公司发布的
4、手机操作系统,它是基于Linux 平台的开源手机操作系统,谷歌公司将要把其打造为基于移动终端的真正开放的移动软件平台,不仅拥有移动电话所需要的工作软件,而且在专利权方面能够不侵犯他人权利去推动移动互联网的创新。谷歌公司为了开发Android,与开放手机联盟进行了合作,手机开放联盟由全球30 多家移动开发和手机应用的领先企业组成。谷歌公司不仅仅和运营商达成了合作关系、而且与设备制造商以及开发商保持长期合作,目的就在于利用其优势建立移动软件平台,其特点是标准化、开放式的。Android是谷歌公司未来企业战略的一部分,其目的是为了在任何时候任何地点能够提供信息。Android应用程序与其他很多计算机
5、平台的应用程序不同,他们没有唯一的启动入口,一个Android应用程序是由多个不同组件组合而成,组件间通过Intent实现通信。Android系统的基本组件包括Activity、Service、Broadcast Receiver和Content Provider等,要实现组件间通信,还需要Intent消息组件。并不是每个Android应用程序都必须具备这四个组件,很多时候只需要这四种中的某几种就可以了。除此之外,应用程序的所有组件还都必须在AndroidManifest.xml中声明8。这是一个XML配置文件,这个配置文件用于定义应用程序的组件、组件的功能及必要条件等。这个配置文件是任何一个
6、Android应用程序所必需的。1.1 ActivityActivity 可以说是开发人员最常用的组件,同时也属于Android 最基本的组成部分之一。Android 程序中,一般一个Activity 代表手机屏幕上的一屏。举例来说,如果将手机比作一个浏览器,那么一个Activity 就相当于一个网页。在Activity 中,可以添加多个视图,然后为这些视图添加一些事件处理。这些视图可以是按钮、文本框、列表等。可以看到,Activity 的概念和网页的概念相当类似。一般一个Android 应用是由多个Activity 组成,同时这些Activity 相互之间可以进行跳转,例如,按下某个Acti
7、vity 中的Button 按钮后,可能会跳转到一个其他的Activity。不过和网页跳转稍有不同,Activity之间的跳转可以有返回值,例如,在Activity A 跳转到Activity B 后,那么当Activity B运行结束时,可能会返回给Activity A 一个值。在多个Activity 交流的过程中,这种返回机制是相当实用的。当用户进入一个新的屏幕时,之前的屏幕会转入暂停状态,并且保存在历史堆栈中。正是由于历史堆栈的存在,用户可以通过返回操作,返回到之前打开过的所有屏幕。Android默认的是将应用程序从开始到当前的每一个屏幕都保存到堆栈中,不过与此同时,Android还提供
8、了很方便的机制,让开发人员自定义某个屏幕是否需要保存到历史堆栈。Activity 的跳转实现,必须借助于Intent 类。因此Intent 在Android 应用中占据的地位是极其重要的。简单来说,一个Intent 就是对一个将要执行的操作请求的抽象描述。Intent 的描述,主要包含有两个数据结构:动作(action)和动作对应的数据(data)。动作有很多种,系统中最常见的动作类型有:MAIN(表明该Activity 是应用程序的入口)、VIEW、PICK、EDIT 等等;而动作对应的数据一般以URI 的形式表示,例如:要查看某一个网页,则需要创建Intent,它的动作类型为VIEW,对应
9、的数据应该是该网页的网址。值得一提的是,有一个类叫IntentFilter,它是Intent的相关类。如果说Intent是一个有效的操作请求,那么一个IntentFiler则用于描述一个Activity(或者Intent Receiver等)能够接收哪些Intent的请求。比如系统浏览器的Activity用于查看某一个网页,那么它用于接收Intent的IntentFilter,要定义类型为VIEW的动作并且能够过滤表示一个网页网址的URI。通常IntentFilter要被注册在AndroidManifest.xml文件中。Activity 之间的跳转正是通过解析各种Intent 来实现的。例如
10、一个Activity 调用startActivity(intent)方法,希望跳转到其他的Activity 时,会触发系统的Intent 解析过程,在所有安装的应用程序中已注册的IntentFilter 中查找,并最终挑选出能够匹配Intent 的Activity。然后这个新的Activity 因为接收到Intent 的请求而开始运行,完成Activity 的跳转。这种跳转机制提供了两个关键好处:(1)操作请求被Intent 封装起来,方便Activity 重复利用。(2)相互跳转的多个Activity 之间实现了松耦合。只要IntentFilier 保持不变,一个ctivity 可以随意修改
11、,而不用担心其他Activity 找不到它。1.2 Broadcast Receiver应用程序可以通过Broadcast Receiver 监听一个外部的事件,并做出响应。例如,当应用程序需要对电话呼入这个外部事件做出反应时,可以利用Broadcast Receiver 进行处理。再如,当一个后台下载任务成功的事件发生时,需要提示用户下载完成,仍然可以利用Broadcast Receiver 来进行处理。Broadcast Receiver不能生成UI,也就是说对于用户来说是透明的,用户是看不到的。Broadcast Receiver只能通过NotificationManager来通知用户这
12、些事件发生了。Broadcast Receiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。注册完成之后,当事件来临的时候,即使程序没有启动,系统依然可以根据定义,自动启动程序。各种应用也可以通过使用Context.sendBroadcast()将它们自己的Intent Broadcast广播给其他应用程序。1.3 ServiceService是一种程序,它可以运行很长时间,但是它却没有用户界面,不可交互,而且不能自己运行。它需要通过某一个Activity或者其他的Context对象来调用12。
13、最常见的例子,比如说用户正在运行一个音乐播放器的程序,此时如果想浏览网页,那么,在用户导航到Android的浏览器以后,虽然进入了浏览器屏幕,但是歌曲的播放并没有停止,而是在后台继续播放着。其实播放的动作正是由播放音乐的Service执行着。当然,如果需要的话,Service也是可以停止。通过startService(Intent service)可以启动一个Service,通过Context.bindService()可以绑定一个Service。1.4 Content Provider对于数据存储,Android与其他的操作系统有一点不太一样,即数据在Android程序中都是私有的,这些数据
14、包括文件类型和数据库类型以及其他类型的数据。这样系统和应用程序的数据就各自独立起来,以避免受到某些不正常程序或是病毒的影响。不过这并不代表各应用程序之间就因此而无法进行数据交换了。当某个应用程序希望与其它的应用共享其数据时,Android提供的Content Provider就可以发挥作用了。在实现Content Provider的抽象接口以后,程序便可以将自己的数据暴露出去,其他程序只要有权限,就可以通过这一套标准而统一的接口,读取或是删除该程序的数据13。2、系统分析与设计2.1数独游戏背景数独的前身为“九宫格”,最早起源于中国。但当时的算法比现在的更为复杂,要求纵向、横向、斜向上的三个数
15、字之和等于15,而不是数字不能重复。儒家典籍易经中的“九宫图”也是来源于此。到了18世纪末,瑞士数学家莱昂哈德欧文又发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家数字逻辑游戏杂志开始刊登这类游戏,使此类游戏得到良好发展,之后又在日本得到了广泛的传播。2004年,第一个“数独”游戏被刊登上了英国泰晤士报的封面,此时开始数独游戏才真正为世界所知晓。数独游戏的规则很简单,只需要在空格处填写19的数字,并保证每个数字在每个九宫格内只出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。由于此类游戏操作简单,不需要特定的语言基础,也不需要进行数字运算且可玩性高、锻炼思维、开发大脑,所以很快风靡全球。2.2游戏功能简介数独游戏的规则很简单,只需在空格处填入 19 的数字,并保证每个数字在每个九宫格内只能出现一次,且每个数字在每一行、每一列也只能出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。游戏框架如下图所示:图3.1 游戏框架图该游戏的运行步骤如下。1.启动游戏后首先进入的便是欢迎界面的动画,在欢迎界面中,“点击屏幕继续”闪动,达到提示的效果。2.在游戏界面点击屏幕,便进入菜单界面。3.在菜单界面单击“关于游戏”菜单可进入“关于”界面,在“关于”界面中介绍了
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1