毕业论文-基于android系统的连连看游戏的设计与实现内容摘要:
在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的 APK 包中,这样可以 节省 Android 手机资源。 介绍 每个应用程序都有一个功能清单文件 (一定是这个名字)在它的根目录里。 这个清单文件给 Android 系统提供了关于这个应用程序的基本信息,系统在运行任何程序代码之前必须知道这些信息。 今后开发 Activity、Service 之后都要在 中进行定义。 主要包括以下 功能: 用 Java 包给应用程序命名。 这个包名 则 是应用程序的唯一标识 ; 描述应用程序的组件 —— 组成应用程序的 Activity、 Service、 Broadcast Receiver 以及 Content Provider。 它要用每个组件的实现类来命名,并向外发布对应组件功能(例如,组件所能处理的 Intent 消息)。 这些声明会让 Android 系统了解应用程序中组件,以及这些组件被加载的条件; 判断哪些进程是主应用程序组件; 声明应用程序所必须的权限,以便能够访问被保护的 API,以及能够跟其他应用程序进行交互; 为了跟应用程序组件进行交互,还声明了其他要求有的权限; 列出了能够提供应 用程序运行时的分析和其他信息的 Instrumentation类。 只有在开发和测试应用程序时才在清单文件中声明这些类,在应用程序被发布之前,要删除这些类; 声明应用程序所要求的最小的 Android API 级别; 列出应用程序必须链接的外部库。 其他文件、文件夹功能 src/ 专门存放我们编写的 java 源代码的包 ; android ; assets/ 该目录用来存放应用中用到的类似于视频文件、 MP3 等 一些媒体文件; 该文件一 般也不需要手工去修改。 该文件存放了项目对应的一些环境配置,如应用要求运行的最低 Android 版本。 4 连连看游戏 程序设计 过程 本章主要介绍 连连看游戏中用到的布局文件,可视化控件及它们的具体实现,连连看游戏的算法实现。 石家庄经济学院本科生毕业论文 8 需求分析 这次设计要实现的是一个简单连连看游戏,选用 Android 平台 , 基于 java语言在 Eclipse 上进行测试和检验。 要求实现连连看游戏的基本功能。 本次设计的主要功能 是 通过在 Android平台上小游戏连连看的开发实现一般“连连看”游戏基本功能 的简单的游戏软件。 设计的主要功能如 下: 游戏规则 第一次使用鼠标 点 击图案,图 案 以放大的特殊方式显示,该图案 成 为选中状态。 再次 点 击其他图案,如果该 图案 与被选中的图案相同且两图案连接起来 ,连接线不多于 三 根直线,就可以成功将 两图案 消除 ,否则第一个图案就恢复为未被选中状态,第二个图案 则 变成选中状态。 游戏时间设置 每消去一对图案,时间就会增加。 当时间全部消耗完时并且还有图案未被消除 , 则 本关 游戏 失败,可以选择重玩或退出。 在限制时间内 消除全部图案,则赢得这一关, 可 选择重新再玩一次,还是玩下一关,亦 是退出游戏。 不同关卡的设置 每 到下一关, 游戏时间 都会比上一关少,而且消除图案时,图片 会向左移或右移,或者 向中间、向两边移动等来增加关数难度。 重新排列 使画面上的图案都重新布局。 暂停游戏 当点击菜单时,会出现两个菜单按钮,一个是重玩,一个是暂停,点击暂停时,会提示继续、重玩或退出游戏。 游戏提示 在玩家找不到可消除的图案后 , 可选择提示,自动消除两个可以连接起来的图案来帮助玩家, 但游戏时间不会增加。 游戏音乐设置 在游戏开始前设置,选择游戏背景音乐的开关,默认为关闭状态。 游戏音效设置 同音乐设置,选择游戏音效的开关,默认为关闭状态。 游戏关卡 选择 最高可选择到第四关。 保存游戏设置 将音乐、音效、关卡所做的设置保存,以便游戏按照玩家的设置进行游戏。 关于游戏 在游戏界面中需要提供游戏使用说明等帮助提示,以方便对本游戏不了解的玩家对游戏进行操作和使用。 退出游戏 点击退出时,提示是否退出游戏 ,避免玩家因误点按钮而终止游戏。 游戏 设计 游戏功能架构 这次设计的功能架构及开始游戏基本框架如下: 石家庄经济学院本科生毕业论文 9 连 连 看开始游戏游戏设置关于游戏退出游戏音乐设置音效设置关卡选择保存设置 图 41 游戏 总体 功能架构 开 始 游 戏表 示 层 模 块 后 台 逻 辑 模 块菜 单 及 选择 d i a l o g游 戏 布 局地 图 V i e w时 间 及 游 戏 状态 监 控 与 处 理核 心 算 法实 现连接算法帮助算法无 解检 测算 法图 片移 动算 法游 戏 音 乐音 效 图 42 开始游戏基本框架 游戏总体架构在 设计实现上就是两个 Activity 界面:一个是点击游戏进入的欢迎界面,一个是游戏设置。 其中欢迎界面包含四个 Button 控件, 当进入游戏开始界面时,调用一个相对布局 welc 的 XML 布局文件。 其中包括 4 个 Button 按钮分别实现不同的功能。 第一个 Button 是开始游戏,点击进入游戏开始。 第二个 Button 是游戏设置,点击进入 游戏设置界面 ,此文件中包括四个 Button 按钮,分别是音乐设置、音效设置、关卡选择、保存设置,来实现音乐、音效的开关,从哪一关开始游 戏,将石家庄经济学院本科生毕业论文 10 所做的设置保存。 第三个 Button 是游戏规则,点击出现一个有关游戏规则的对话框。 第四个 Button 是退出游戏,点击出现提示是否推出的对话框。 开始游戏 程序主要包含两大模块:即 ( 1) 表示层模块; ( 2) 后台逻辑模块。 其中 表示层模块 即 为游戏的 UI 及一些游戏辅助效果,表示层模块中,重要的是实现游戏的布局地图。 项目 的 实现中,游戏的布局将使用自定义 View 的方式,在屏幕上贴图实现。 而菜单模块及 一些 选 择 dialog,只是为用户提供一些常见的选择,如重玩, 下一关,暂停等等。 为了有一个更好的用户交互环境, dialog的实现将通过自定义 dialog 的方式。 而游戏音效是 MediaPlayer 在不同的状态场景下播放不同的游戏音效。 在 后台逻辑模块 中,即 对于程序计算的实现与程序各种状态的监听,将是整个程序运行的基础。 此模块中将实现对于游戏剩余时间限制和游戏状态的监听与处理。 对于游戏剩余时间的监听,将开启单独的线程进行处理,从而不至于影响主程序逻辑的运行; 在对 游戏 状态的监控处理中,将会实现对于连通的两个图 案的消除(即游戏界面的更新),游戏输赢的监听判断,游戏暂停与否等(暂停状态需要同时将剩余时间暂停,而时间监听线程需要知道所处状 态,此二者紧密联系)。 对于本程序中最重要的还是程序中核心算法模块的实现 ,在游戏中,最主要的算法是判断两个选中的图 案 是否能够连通,其 中帮助算法和无解检测 算法也依赖于此算法而进行。 图片移动算法则是为了增加游戏的难度、灵活性,此部分算法主要在于消除两图案后,图片集体向哪个方向移动。 类结构设计 游戏 由 十多个类组成, 其功能 如下: BoardView 类 在 android 平台下,采用继承自 View 类的方式。 在此类中实现 屏幕上贴图 、绘制连通 的 路劲、消除连通图案、图片移动 的算法等。 GameView 类 在 android 平台下,采用继承 BoardView 类的方式。 主要实现 监听剩余时间的内部类实现 、游戏开始、判断两个 选中 图案 是否能连通的核心算法 、 帮助算法、无解检测算法等。 WelActivity 类 在 android 平台下,采用继承 Activity 类的方式。 实现游戏运行时的界面效果及菜单模块及选择 dialog 等。 WeleActivity 类 继承 Activity 类,实现欢迎游戏界面。 SetActivity 类 继承 Activity 类,实现游戏设置界面。 MyDialog 类 在 android 平台下,采用 继承 Dialog 类的方式。 实现了OnClickListener 的 OnClick 方法,使用一个布局文件,将自定义的 dialog布局 ,完成包含退出游戏、重玩 这一关 及下一关的三个图片按钮的对话框。 FailDialog 类 同 MyDialog 类,继承 Activity 类,将自定义的 dialog 布局,实现包含退出游戏和重玩的对话框。 SoundPlay 类 实现对音效的设置。 石家庄经济学院本科生毕业论文 11 Dataset 类 实现音乐 开关、 关数等一些变量的设置。 Configuration 类 实现读取文件的功能。 OnTimerListener 类、 OnToolsChangeListener 类、 OnStateListener 类 定义的接口类,分别实现 游戏状态 变换的监听 、 剩余时间 的 监听 、重排和提示 两种工具都有次数的限制。 详细设计 欢迎界面设 计 欢迎界面包含四个 Button 按钮,分别实现进入游戏运行界面、进入游戏设置界面、出现关于游戏规则的对话框、出现是否退出游戏的提示框。 本部分功能在 WeleActivity 类中实现, 用 setContentView()函数调用了。 其中实现开始游戏按钮双击的为 ()函数,实现游戏设置双击效果的为 (),关于游戏按钮的实现为 (),退出游戏的为 exit. setOnClickListenter()。 类中 setOnFocusChangelistenter()作用是 点击 相应 按钮后,按钮颜色的变化效果。 游戏设置界面 设计 此界面同样包含四个按钮,分别出现音乐设置的选择对话框、音效设置的选择对话框、关卡选择的选 择对话框、保存游戏后返回欢迎界面。 这部分功能在 SetActivity 类中实现,调用了 布局文件。 其中 音乐设置、音效设置、关卡选择三个 按钮上 用 setOnClickListenter()函数中调用AlterDialog 类 ,完成选择对话框的功能,保存设置按钮在 setOnClickListenter()中将 Dataset 类中的变量赋与前三个按钮设置的变量的值。 游戏运行时界面 设计 这部分功能在 WelActivity 类 中实现 ,调用 布局文件 、 MyDialog类 和 GameView 类。 其中 WelActivity 类 中 onCreat()函数完成程序运行界面显示,即连连看布局。 onClick()函数实现点击刷新 、提示按钮时,图片出现抖动 的效果,同时 分别 调用refreshChange()重新排列函数和 autoClear()提示函数 完成刷新界面和提示 功能。 toast()用于游戏开始时 显示这一关游戏的 总时间及关数。 实现 菜单功能 的 函数 为nCreateOptionsMenu()和 onOptionsItemSelected()。 还有 用于监听后退按钮的函数onKeyDown(), 胜利或失败时提示 对话框函数 handMessage()等。 在 MyDialog 类中, 实现游戏胜利或失败时的提示对话框按钮点击功能函数的 onClick(), 用于游戏开始时 显示 总时间及关数 的 toast()函数 等。 GameView 类中,游戏开始函数 startPlay(),更新剩余时间线程 RefreshTime,处理程序线程 RefreshHandler(), 还包含 界面初始化函数 initMap(),触屏重写函数 onTouchEvent(),核心算法函数 link(),是否有解的函数 die(),重新排列 change(),继承 BoardView 类中画线函数、图片移动函数等。 石家庄经济学院本科生毕业论文 12 布局算法 首先在程序初始化时,先将要加载的图 案 在棋盘上按序绘制出来, 每一种 图案 在 绘制的时候需要一次性绘制两次 ,这样,才能 保证 绘制出来的每种图 案 的个数都是偶数。 这样绘制后,进行一次遍历,随机的调换棋盘中的图 案 (是现有棋盘中的图 案 之间的调换,并不是更改成为其他的图 案 )。 经过调换的棋盘就完成了棋盘的初始化。 其中 棋盘在最外面一层中是不添加 图案 的,为的是连线时候能够 在 最外层画线,而不会出现穿过 图案 画线的情况。 初始化地图 流程图 : 开 始i 横 坐 标 1。 是j 纵 坐 标 1。 初 始 化 x = 1 ; 标 志y = 0 是M a p [ i ] [ j ] = x。 此 图 片 是 否 为偶 数 即 y = 1 ? 是x + +。 标 志。毕业论文-基于android系统的连连看游戏的设计与实现
相关推荐
态开始工作。 复位操作有两种基本形式:一种是上电自动复位,另一种是按键手动复位。 上电复位要求接通电源后,单 片机自动实现复位操作。 上电瞬间 RST 引脚获得高电平,随着电容的充电, RST 引脚的高电平将逐渐下降。 RST 引脚的高电平只要能保持足够的时间( 2 个机器周期),单片机就可以进行复位操作。 上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间
化制造某类产品的冲裁模或弯曲模, 这样更有利于制造水平的提高和制造周期的缩短。 我国冲模标准化与专业化生产近年来也有较大发展,除反映在标准件专业化生产厂家有较多增加外,标准件品种也有扩展,精度亦有提高。 但总体情况还满足不了模具工业发展的要求,主要体现在标准化程度还不高(一般在 40%以下),标准件的品种和规格较少,大多数标准件厂家未形成规模化生产,标准件质量也还存在较多 问题。 另外
环境 数据采集模块 温度升高,如果能将这时能够探测到有效地温度值,就可以比较及时地控制火灾。 起火过程曲线如图 所示。 图 起火过程曲线 系统总体方案设计 系统硬件总体构架 报警系统主要由数据采集模块、单片机控制模块、声光报警模块组成。 图 为火灾报警系统的结构框图。 图 系统结构框图 温度曲线 烟雾曲线 起初 阴燃 火焰燃烧 时间 t 阴燃 气化 熄灭 全燃阶段 烟雾、温度传感器 信号调理电路
要集中在预塔塔顶而大量进入二级冷凝器回流液。 这类物质如不在回流液中脱除,就会造成预塔塔釜出料杂质多,影响精甲醇的质量。 脱除这些杂质的方法主要是利用其不溶于水的特性。 在预塔加入萃取水可提高醛、酮类物质的相对挥发度,从而使其从塔顶采出。 [16] 回流比的选择 回流比对精馏塔操作影响很大,直接关系着培内各层扳上的物料浓度的改变和温度的分布。 一般情况下,选取适宜回流比为最小回比的 ~ 2倍。
这也是很多 JSP 站点最后不得不寿终正寝的原因所在 [2]。 从 Java 开发就已经加入了 JDBC API, 用于以基于 SQL 的方式访问关系型数据库 , 这种做法对于如今的很多应用程序仍旧适用。 JDBC 能够以很高的性能执行基于数据集的操作,这种时候 SQL 非常强大而且易用。 JDBC 的目标不是要给关系型数据提供一个面向对象的视图,也不会牺牲目标数据库专有的强大功能。 传统型