Android连连看毕业论文.doc_第1页
Android连连看毕业论文.doc_第2页
Android连连看毕业论文.doc_第3页
Android连连看毕业论文.doc_第4页
Android连连看毕业论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 摘 要 现今社会 由于人们生活压力较大 出现了各种缓解压力的方法 其中手机游戏是 最为普遍的一种 手机游戏的制作的目的就是满足人们休闲的需要 在紧张的工作之余 休闲类的小游戏能够给人很大程度的放松 连连看 是一款非常流行的休闲类游戏 由于它规则简单 画面精美 操作方便 赢得了很多玩家的喜爱 本次毕业设计的目的就是在 Android 平台上实现简单的游戏开发 了解和掌握 Android 操作系统 Android 平台基于 java 语言 在 eclipse 上的实现和测试 矚慫润厲钐瘗睞枥 庑赖 本文通过在 Android 平台上小游戏 连连看 的开发实现了一般 连连看 游戏 的基本功能 还附加提示 重新排列 重玩游戏 背景音乐的开关 音效的开关 关卡 的选择等功能 聞創沟燴鐺險爱氇谴净 关键词 游戏 Android java eclipse 连连看 ABSTRACT In modern society due to the pressure of people s lives a variety of relaxation techniques have rapidly emerged in which the mobile game is the most common The original purpose of the mobile phone game is to meet the needs of the people to relax In a tight spare time casual games can give a large degree of laxation Lianliankan is a very popular casual game and won a lot of players love because of its simple rules beautiful screen and easy operation 残骛楼諍锩瀨濟溆 塹籟 The purpose of this graduation project is a simple game on the Android platform development to understand and master the Android operating system The Android platform is based on the java language implementing and testing in eclipse 酽锕极額閉镇桧猪訣锥 In this paper a small game Lianliankan development on the Android platform implements the basic functions of the general Lianliankan game This game is also attached to the function of tips rearrangement replay background music switch audio switch and level selection 彈贸摄尔霁毙 攬砖卤庑 Key words Game Android java eclipse Lianliankan謀荞抟箧飆鐸怼类蒋薔 II 目目 录录 绪论 1厦礴恳蹒骈時盡继價骚 1 开发概述 1茕桢广鳓鯡选块网羈泪 1 1 Android背景 1鹅娅尽損鹌惨歷茏鴛賴 1 2 课题来源 2籟丛妈羥为贍偾蛏练淨 1 3 主要工作 3預頌圣鉉儐歲龈讶骅籴 2 Android开发环境 3渗釤呛俨匀谔鱉调硯錦 2 1 Android开发环境 3铙誅卧泻噦圣骋贶頂廡 2 2 Android开发环境搭建 3擁締凤袜备訊顎轮烂蔷 2 2 1 JDK的配置 3贓熱俣阃歲匱阊邺镓騷 2 2 2 安装Eclipse 4坛摶乡囂忏蒌鍥铃氈淚 2 2 3 安装Eclipse插件 ADT 4蜡變黲癟報伥铉锚鈰赘 2 2 4 安装SDK 5買鲷鴯譖昙膚遙闫撷凄 2 2 5 Android开发环境配置最终步骤 5綾镝鯛駕櫬鹕踪韦辚糴 3 Android项目的目录结构 5驅踬髏彦浃绥譎饴憂锦 3 1 Resource目录及其下文件详解 5猫虿驢绘燈鮒诛髅貺庑 3 1 1 res drawable 6锹籁饗迳琐筆襖鸥娅薔 3 1 2 res values 6構氽頑黉碩饨荠龈话骛 3 1 3 res layout 6輒峄陽檉簖疖網儂號泶 3 2 gen 目录下的R java文件详解 6尧侧閆繭絳闕绚勵蜆贅 3 3 AndroidManifest xml介绍 7识饒鎂錕缢灩筧嚌俨淒 3 4 其他文件 文件夹功能 7凍鈹鋨劳臘锴痫婦胫籴 4 连连看游戏程序设计过程 7恥諤銪灭萦欢煬鞏鹜錦 4 1 需求分析 8鯊腎鑰诎褳鉀沩懼統庫 4 2 游戏设计 8硕癘鄴颃诌攆檸攜驤蔹 4 2 1 游戏功能架构 8阌擻輳嬪諫迁择楨秘騖 4 2 2 类结构设计 10氬嚕躑竄贸恳彈瀘颔澩 4 3 详细设计 11釷鹆資贏車贖孙滅獅赘 4 3 1 欢迎界面设计 11怂阐譜鯪迳導嘯畫長凉 4 3 2 游戏设置界面设计 11谚辞調担鈧谄动禪泻類 4 3 3 游戏运行时界面设计 11嘰觐詿缧铴嗫偽純铪锩 4 3 4 布局算法 12熒绐譏钲鏌觶鷹緇機库 4 3 5 连接算法 13鶼渍螻偉阅劍鲰腎邏蘞 4 3 6 移动算法 18纣忧蔣氳頑莶驅藥悯骛 5 游戏效果 22颖刍莖蛺饽亿顿裊赔泷 III 6 结论 30濫驂膽閉驟羥闈詔寢賻 致 谢 31銚銻縵哜鳗鸿锓謎諏涼 参考文献 32挤貼綬电麥结鈺贖哓类 石家庄经济学院本科生毕业论文 1 基于安卓系统的连连看游戏的设计与实现基于安卓系统的连连看游戏的设计与实现 绪论绪论 现今社会已步入信息社会 信息社会离不开通讯 而手机则是人们必不可 少的通讯工具 随着手机的普及以及手机的硬件的提升 手机的系统平台也日 渐火热 目前国内最常见的移动开发平台有 Symbian iPhone Windows Phone 以及当下正在逐步兴起的 Android 随着 Symbian J2me 等平台的没落 Android 跟 iPhone 是最新的手机应用平台 赔荊紳谘侖驟辽輩袜錈 如今国内已经有越来越多的 Android 系统用户 进入 2010 年之后 Android 的应用开发 达到了一个爆炸式增长的状态 从 2009 年的不到 1 万 款应用程序增加到现在的 9 万 而且即将突破 10 万 这也从开发者这一方 面展现了用户不断增多的现象 截止 2010 年第二季度 Android 系统的国内 市场占有率已经过 10 在西欧以及北美智能手机市场占有率也在 20 左右 到 2011 年第一季度 Android 在全球的市场份额首次超过塞班系统 跃居全球 第一 2011 年 11 月数据 Android 占据全球智能手机操作系统市场 52 5 的 份额 中国市场占有率为 58 可见 Android 系统正在迅速崛起之中 但是对 于 Android 系统的应用和开发在国内仍然属于起步和探索阶段 急需要大量的 相关技术和人员的投入 塤礙籟馐决穩賽釙冊庫 根据 iResearch 艾瑞市场咨询整理的国外数据显示 全球手机游戏市场的收 入规模在 2005 年达到了 102 亿美元 2008 年达到 520 亿美元 07 年之后 手 机游戏市场增速开始减缓 传统手机游戏逐渐显现颓势 市场增长主要由基于 智能手机平台的游戏所带动 Android 游戏进入智能手机游戏市场 必将打破原 有格局 开辟手机游戏新纪元 裊樣祕廬廂颤谚鍘羋蔺 Android 平台上的游戏相比应用软件 不需要进行严格的市场细分 不需要 针对目标用户量身定制 而且绝大多数种类的游戏都具备传染性与普适性 仓嫗 盤紲嘱珑詁鍬齊驁 手机游戏作为 android 系统平台的一个重要组成部分 正在被越来越多的人 所重视 全球在使用的移动电话已经超过 10 亿部 而且这个数字每天都在不断 增加 在除美国之外的各个发达国家 手机用户都比计算机用户多 中国更是 一个手机用户大国 手机游戏潜在的市场比其他任何平台都要大 绽萬璉轆娛閬蛏鬮 绾瀧 1 开发概述 本章主要介绍 Android 开发背景 本次设计的选题来源 以及设计的主要 工作 石家庄经济学院本科生毕业论文 2 1 1 Android 背景背景 Android 是 Google 历经数年和投资数亿美元开发出来的智能手机系统 随 着各大移动终端生产商大力开发和生产基于 Android 的移动智能设备 Android 迅速得到商业和社会的认可 它是一个较新的系统和技术 作为一个庞大的系 统 包括了 Linux 操作系统 各种本地程序 虚拟机和运行环境 java 框架和 java 应用程序多方面的内容 骁顾燁鶚巯瀆蕪領鲡赙 2010 年末数据显示 仅正式推出两年的 Android 的操作系统已经超越称霸 十年的诺基亚 Symbian 系统 成为全球最受欢迎的智能手机平台 瑣钋濺暧惲锟缟馭 篩凉 Android 的代表机型 Android 1 0 2008 年 9 月 Android 1 5 Cupcake 纸杯蛋糕 2009 年 4 月 Android 1 6 Donut 甜甜圈 2009 年 9 月 Android 2 0 对应的是 layout 目录下的 main xml 文件 当 开发者在 res 目录的任何一个子目录中添加或删除相应类型的文件后 ADT 会 在 R ava 文件中相应的匿名内部类中自动生成或删除一条静态 int 类型的常量 并对添加的文件进行索引 镞锊过润启婭澗骆讕瀘 石家庄经济学院本科生毕业论文 7 R java 文件除了有自动标识资源的 索引 功能之外 还有另一个主要功 能 当 res 目录中的某个资源在应用中没有被使用到 在该应用被编译的时候 系统就不会把对应的资源编译到该应用的 APK 包中 这样可以节省 Android 手 机资源 榿贰轲誊壟该槛鲻垲赛 3 3 AndroidManifest xml 介介绍绍 每个应用程序都有一个功能清单文件 AndroidManifest xml 一定是这个名 字 在它的根目录里 这个清单文件给 Android 系统提供了关于这个应用程序 的基本信息 系统在运行任何程序代码之前必须知道这些信息 今后开发 Activity Service 之后都要在 AndroidManifest xml 中进行定义 AndroidManifest xml 主要包括以下功能 邁茑赚陉宾呗擷鹪讼凑 用 Java 包给应用程序命名 这个包名则是应用程序的唯一标识 描述应用程序的组件 组成应用程序的 Activity Service Broadcast Receiver 以及 Content Provider 它要用每个组件的实现类来命名 并 向外发布对应组件功能 例如 组件所能处理的 Intent 消息 这些声 明会让 Android 系统了解应用程序中组件 以及这些组件被加载的条件 嵝硖贪塒廩袞悯倉華糲 判断哪些进程是主应用程序组件 声明应用程序所必须的权限 以便能够访问被保护的 API 以及能够跟 其他应用程序进行交互 为了跟应用程序组件进行交互 还声明了其他要求有的权限 列出了能够提供应用程序运行时的分析和其他信息的 Instrumentation 类 只有在开发和测试应用程序时才在清单文件中声明这些类 在应用程 序被发布之前 要删除这些类 该栎谖碼戆沖巋鳧薩锭 声明应用程序所要求的最小的 Android API 级别 列出应用程序必须链接的外部库 3 4 其他文件 文件其他文件 文件夹夹功能功能 src 专门存放我们编写的 java 源代码的包 android 2 2 存放 Android 自身的 jar 包 assets 该目录用来存放应用中用到的类似于视频文件 MP3 等一些媒 体文件 default properties 该文件一般也不需要手工去修改 该文件存放了项目 对应的一些环境配置 如应用要求运行的最低 Android 版本 劇妆诨貰攖苹 埘呂仑庙 4 连连看游戏程序设计过程连连看游戏程序设计过程 本章主要介绍连连看游戏中用到的布局文件 可视化控件及它们的具体实 现 连连看游戏的算法实现 石家庄经济学院本科生毕业论文 8 4 1 需求分析需求分析 这次设计要实现的是一个简单连连看游戏 选用 Android 平台 基于 java 语言在 Eclipse 上进行测试和检验 要求实现连连看游戏的基本功能 臠龍讹驄桠业 變墊罗蘄 本次设计的主要功能是通过在 Android 平台上小游戏连连看的开发实现一 般 连连看 游戏基本功能的简单的游戏软件 鰻順褛悦漚縫冁屜鸭骞 设计的主要功能如下 游戏规则 第一次使用鼠标点击图案 图案以放大的特殊方式显示 该图案成为选中状态 再次点击其他图案 如果该图案与被选中的图 案相同且两图案连接起来 连接线不多于三根直线 就可以成功将两 图案消除 否则第一个图案就恢复为未被选中状态 第二个图案则变 成选中状态 穑釓虚绺滟鳗絲懷紓泺 游戏时间设置 每消去一对图案 时间就会增加 当时间全部消耗完 时并且还有图案未被消除 则本关游戏失败 可以选择重玩或退出 在限制时间内消除全部图案 则赢得这一关 可选择重新再玩一次 还是玩下一关 亦是退出游戏 隶誆荧鉴獫纲鴣攣駘賽 不同关卡的设置 每到下一关 游戏时间都会比上一关少 而且消除 图案时 图片会向左移或右移 或者向中间 向两边移动等来增加关 数难度 浹繢腻叢着駕骠構砀湊 重新排列 使画面上的图案都重新布局 暂停游戏 当点击菜单时 会出现两个菜单按钮 一个是重玩 一个 是暂停 点击暂停时 会提示继续 重玩或退出游戏 鈀燭罚櫝箋礱颼畢韫粝 游戏提示 在玩家找不到可消除的图案后 可选择提示 自动消除两 个可以连接起来的图案来帮助玩家 但游戏时间不会增加 惬執缉蘿绅颀阳 灣熗鍵 游戏音乐设置 在游戏开始前设置 选择游戏背景音乐的开关 默认 为关闭状态 游戏音效设置 同音乐设置 选择游戏音效的开关 默认为关闭状态 游戏关卡选择 最高可选择到第四关 保存游戏设置 将音乐 音效 关卡所做的设置保存 以便游戏按照 玩家的设置进行游戏 关于游戏 在游戏界面中需要提供游戏使用说明等帮助提示 以方便 对本游戏不了解的玩家对游戏进行操作和使用 贞廈给鏌綞牵鎮獵鎦龐 退出游戏 点击退出时 提示是否退出游戏 避免玩家因误点按钮而 终止游戏 石家庄经济学院本科生毕业论文 9 4 2 游游戏设计戏设计 4 2 1 游戏功能架构游戏功能架构 这次设计的功能架构及开始游戏基本框架如下 连连看 开 始 游 戏 游 戏 设 置 关 于 游 戏 退 出 游 戏 音 乐 设 置 音 效 设 置 关 卡 选 择 保 存 设 置 图 4 1 游戏总体功能架构 开始游戏 表示层模块后台逻辑模块 菜单及选 择dialog 游戏布局 地图View 时间及游戏状 态监控与处理 核心算法 实现 连 接 算 法 帮 助 算 法 无解 检测 算法 图片 移动 算法 游戏音乐 音效 图 4 2 开始游戏基本框架 游戏总体架构在设计实现上就是两个 Activity 界面 一个是点击游戏进入 的欢迎界面 一个是游戏设置 其中欢迎界面包含四个 Button 控件 当进入游戏开始界面时 调用一个相 对布局 welc 的 XML 布局文件 其中包括 4 个 Button 按钮分别实现不同的功能 石家庄经济学院本科生毕业论文 10 第一个 Button 是开始游戏 点击进入游戏开始 第二个 Button 是游戏设置 点 击进入游戏设置界面 此文件中包括四个 Button 按钮 分别是音乐设置 音效 设置 关卡选择 保存设置 来实现音乐 音效的开关 从哪一关开始游戏 将所做的设置保存 第三个 Button 是游戏规则 点击出现一个有关游戏规则的 对话框 第四个 Button 是退出游戏 点击出现提示是否推出的对话框 嚌鲭级厨胀 鑲铟礦毁蕲 开始游戏程序主要包含两大模块 即 1 表示层模块 2 后台逻辑模 块 其中表示层模块即为游戏的 UI 及一些游戏辅助效果 表示层模块中 重要 的是实现游戏的布局地图 项目的实现中 游戏的布局将使用自定义 View 的 方式 在屏幕上贴图实现 而菜单模块及一些选择 dialog 只是为用户提供一 些常见的选择 如重玩 下一关 暂停等等 为了有一个更好的用户交互环境 dialog 的实现将通过自定义 dialog 的方式 而游戏音效是 MediaPlayer 在不同的 状态场景下播放不同的游戏音效 薊镔竖牍熒浹醬籬铃騫 在后台逻辑模块中 即对于程序计算的实现与程序各种状态的监听 将是 整个程序运行的基础 此模块中将实现对于游戏剩余时间限制和游戏状态的监 听与处理 对于游戏剩余时间的监听 将开启单独的线程进行处理 从而不至 于影响主程序逻辑的运行 在对游戏状态的监控处理中 将会实现对于连通的 两个图案的消除 即游戏界面的更新 游戏输赢的监听判断 游戏暂停与否 等 暂停状态需要同时将剩余时间暂停 而时间监听线程需要知道所处状态 此二者紧密联系 对于本程序中最重要的还是程序中核心算法模块的实现 在游戏中 最主要的算法是判断两个选中的图案是否能够连通 其中帮助算法 和无解检测算法也依赖于此算法而进行 图片移动算法则是为了增加游戏的难 度 灵活性 此部分算法主要在于消除两图案后 图片集体向哪个方向移动 齡践砚语蜗铸转絹攤濼 4 2 2 类结构设计类结构设计 游戏由十多个类组成 其功能如下 BoardView 类 在 android 平台下 采用继承自 View 类的方式 在此类 中实现屏幕上贴图 绘制连通的路劲 消除连通图案 图片移动的算 法等 绅薮疮颧訝标販繯轅赛 GameView 类 在 android 平台下 采用继承 BoardView 类的方式 主 要实现监听剩余时间的内部类实现 游戏开始 判断两个选中图案是 否能连通的核心算法 帮助算法 无解检测算法等 饪箩狞屬诺釙诬苧径凛 WelActivity 类 在 android 平台下 采用继承 Activity 类的方式 实现 游戏运行时的界面效果及菜单模块及选择 dialog 等 烴毙潜籬賢擔視蠶贲粵 WelcomeActivity 类 继承 Activity 类 实现欢迎游戏界面 SetActivity 类 继承 Activity 类 实现游戏设置界面 石家庄经济学院本科生毕业论文 11 MyDialog 类 在 android 平台下 采用继承 Dialog 类的方式 实现了 OnClickListener 的 OnClick 方法 使用一个布局文件 将自定义的 dialog 布局 完成包含退出游戏 重玩这一关及下一关的三个图片按钮 的对话框 鋝岂涛軌跃轮莳講嫗键 FailDialog 类 同 MyDialog 类 继承 Activity 类 将自定义的 dialog 布局 实现包含退出游戏和重玩的对话框 撷伪氢鱧轍幂聹諛詼庞 SoundPlay 类 实现对音效的设置 Dataset 类 实现音乐开关 关数等一些变量的设置 Configuration 类 实现读取文件的功能 OnTimerListener 类 OnToolsChangeListener类 OnStateListener 类 定义的接口类 分别实现游戏状态变换的监听 剩余时间的监听 重 排和提示两种工具都有次数的限制 踪飯梦掺钓貞绫賁发蘄 4 3 详细设计详细设计 4 3 1 欢迎界面设欢迎界面设计计 欢迎界面包含四个 Button 按钮 分别实现进入游戏运行界面 进入游戏设 置界面 出现关于游戏规则的对话框 出现是否退出游戏的提示框 婭鑠机职銦夾 簣軒蚀骞 本部分功能在 WelcomeActivity 类中实现 用 setContentView 函数调用了 welc xml 布局文件 其中实现开始游戏按钮双击的为 startBtn setOnClickListenter 函数 实现游戏设置双击效果的为 setBtn setOnClickListenter 关于游戏按钮的实现为 aboutBtn setOnClickListenter 退出游戏的为 exit setOnClickListenter 类中 setOnFocusChangelistenter 作用是点击相应按钮后 按钮颜色的变化效果 譽諶 掺铒锭试监鄺儕泻 4 3 2 游戏设置界面游戏设置界面设计设计 此界面同样包含四个按钮 分别出现音乐设置的选择对话框 音效设置的 选择对话框 关卡选择的选择对话框 保存游戏后返回欢迎界面 俦聹执償閏号燴鈿 膽賾 这部分功能在 SetActivity 类中实现 调用了 set xml 布局文件 其中音乐设 置 音效设置 关卡选择三个按钮上用 setOnClickListenter 函数中调用 AlterDialog 类 完成选择对话框的功能 保存设置按钮在 setOnClickListenter 中将 Dataset 类中的变量赋与前三个按钮设置的变量的值 缜電怅淺靓蠐浅錒鵬凜 4 3 3 游戏运行时界面游戏运行时界面设计设计 这部分功能在 WelActivity 类中实现 调用 welcome xml 布局文件 MyDialog 类和 GameView 类 骥擯帜褸饜兗椏長绛粤 其中 WelActivity 类中 onCreat 函数完成程序运行界面显示 即连连看布局 onClick 函数实现点击刷新 提示按钮时 图片出现抖动的效果 同时分别调 石家庄经济学院本科生毕业论文 12 用 refreshChange 重新排列函数和 autoClear 提示函数完成刷新界面和提示功能 toast 用于游戏开始时显示这一关游戏的总时间及关数 实现菜单功能的函数 为 nCreateOptionsMenu 和 onOptionsItemSelected 还有用于监听后退按钮的 函数 onKeyDown 胜利或失败时提示对话框函数 handMessage 等 癱噴导閽骋艳 捣靨骢鍵 在 MyDialog 类中 实现游戏胜利或失败时的提示对话框按钮点击功能函数 的 onClick 用于游戏开始时显示总时间及关数的 toast 函数等 鑣鸽夺圆鯢齙慫餞 離龐 GameView 类中 游戏开始函数 startPlay 更新剩余时间线程 RefreshTime 处理程序线程 RefreshHandler 还包含界面初始化函数 initMap 触屏重写函数 onTouchEvent 核心算法函数 link 是否有解的函数 die 重 新排列 change 继承 BoardView 类中画线函数 图片移动函数等 榄阈团皱鹏緦寿 驏頦蕴 4 3 4 布局算法布局算法 首先在程序初始化时 先将要加载的图案在棋盘上按序绘制出来 每一种 图案在绘制的时候需要一次性绘制两次 这样 才能保证绘制出来的每种图案 的个数都是偶数 这样绘制后 进行一次遍历 随机的调换棋盘中的图案 是 现有棋盘中的图案之间的调换 并不是更改成为其他的图案 经过调换的棋 盘就完成了棋盘的初始化 其中棋盘在最外面一层中是不添加图案的 为的是 连线时候能够在最外层画线 而不会出现穿过图案画线的情况 逊输吴贝义鲽國鳩犹 騸 初始化地图流程图 石家庄经济学院本科生毕业论文 13 开始 i 横坐标 1 是是 j 纵坐标 1 初始化x 1 标志 y 0 是是 Map i j x 此图片是否为 偶数即y 1 是是 x 标志 位y 0 x是否等于 图片总数 x 1 否 j 是 否 否否 y 1 否 i 结束 随机打乱图片 图 4 3 初始化地图 初始化屏幕地图的主要代码 public void initMap int x 1 int y 0 标志 确保每个图片出现的是偶数 for int i 1 i xCount 1 i for int j 1 j yCount 1 j map i j x if y 1 x y 0 if x iconCounts x 1 石家庄经济学院本科生毕业论文 14 else y 1 change 随机的打乱图案顺序 4 3 5 连接算法连接算法 两个图案能够连接的充分条件是 1 两个图案是相同的 2 两个图 案之间有一条路相连 其中这条 路上 没有其他的图案 阻碍 3 这一 条路不能有两个以上的拐角 满足这三个条件即可认为两个图案是相连通的 对于图案连通的判断中 连通时有三种情况 分别为以下 幘觇匮骇儺红卤齡镰瀉 1 直线型 这就是两图案在同一行或同一列 这种情况最容易判断 只 要两者之间没有其他图案即可 实例如下图 判断直线型相连 誦终决懷区馱倆侧澩 赜 图 4 4 直线型的实例 2 一折型 其实是以两个选中图案确定的两个对角顶点画一个矩形 若 是其余两个顶点中有能够满足与两个选中图案都能够 直线型 相连的 即可 认为这两个选中图案可以相连 实例如下图 红色为需要判断的图案 判断 两个红色的图案相连的情况 医涤侣綃噲睞齒办銩凛 图 4 5 一折型的实例 3 二折型 对于二折型相连的判断是重点 判断二折型连通主要是做两 个方向的扫描 即横向扫描与纵向扫描 舻当为遙头韪鳍哕晕糞 横向扫描 红色为需要判断的图案 石家庄经济学院本科生毕业论文 15 图 4 6 进行横向扩展 图 4 7 扩展中两点能够满足直线型相连 横向扫描首先将两个需要判断的图案进行横向的扩展 扩展规则是在没有 遇到其他图案时一直扩展 直到遇到此行的其他图案或者到达棋盘的边缘 扩 展后的点如图中 X 表示 如果扩展后的点中能够存在两点满足直线型相连通的 情况 即可判断两个图案是可以相连通的 连通的画线也是根据这两个辅助点 相连而成的 鸪凑鸛齏嶇烛罵奖选锯 类似的 对于纵向扫描 红色为需要判断的图案 图 4 8 进行纵向扩展 图 4 9 扩展中存在两点能够满足直线型 4 连连看连接算法流程图及主要代码 连接算法 石家庄经济学院本科生毕业论文 16 开始 选中的为 同一个图案 否 选中图案 是否相同 是 直线型 否 没有图案 是 第一个拐点 连通 是否 选中的两 点都与该点直 线型相连 是 连通 否 没有图案 第二个拐点 是 选中的两 点都与该点直 线型相连 是 连通 否 横向扩展 够存在两 点满足直线 型连通 否 是 连通 否 纵向扩展 够存在两 点满足直线 型连通 是 连通 否 是 不能连通 不能连通 否 不能连通 结束 图 4 10 连连看连接算法 连连看连接算法主要代码 private boolean link Point p1 Point p2 if p1 equals p2 return false 石家庄经济学院本科生毕业论文 17 path clear if map p1 x p1 y map p2 x p2 y if linkD p1 p2 path add p1 path add p2 return true 一个拐点的判断 Point p new Point p1 x p2 y 假设第一种可能拐点 if map p x p y 0 if linkD p1 p path add p path add p2 return true p new Point p2 x p1 y 假设第二种可能拐点 if map p x p y 0 if linkD p1 p path add p path add p2 return true 两个折点 expandX p1 p1E expandX p2 p2E for Point pt1 p1E for Point pt2 p2E if pt1 x pt2 x if linkD pt1 pt2 path add p1 path add pt1 path add pt2 path add p2 return true 石家庄经济学院本科生毕业论文 18 expandY p1 p1E expandY p2 p2E for Point pt1 p1E for Point pt2 p2E if pt1 y pt2 y if linkD pt1 pt2 path add p1 path add pt1 path add pt2 path add p2 return true return false return false 5 直线型连接流程图 开始 直线型连接 纵向直线 是 两图案之间 有无图案 有 无 否 横向直线 是 否 两图案之间 有无图案 有 无 不是直线型连接 不是直线型连接 结束 图 4 11 直线型连接 石家庄经济学院本科生毕业论文 19 6 判断当前是否已经无解 开始 y 纵坐标 1 x 横坐标 1 是 否 是 map x y 0 否 j 纵坐标 1 j y j y 即是否从一行 的第一个元素开始 是 i x 1 i 横坐标 1 是 map i j 与map x y 相等并且连通 是 有解 否 i 否 j 否 i x i 横坐标 1 是 map i j 与map x y 相等并且连通 是 有解 否 i 否 j x 是 否 y 无解 结束 是 否 图 4 12 判断当前界面是否还有可以消除的图案 4 3 6 移动算法移动算法 根据关数的不同 图案消除后 向不同的方向移动 1 左移算法 当消去一对图案后 进行图案遍历 将消去的图案的右边 图案向左移 石家庄经济学院本科生毕业论文 20 开始 map j i 与 Map n i 交换 j 横向坐标 1 是 Map n i 0 是 是 Map j i 0 是 否 n 横向坐标 1 否 n n j 1 i 纵向坐标 1 否 i j 结束 否 是 否 图 4 13 图案左移算法 向左移动算法代码 public void moveleft 左移 int i j n for i 1 i yCount 1 i for j 1 j xCount 1 j if map j i 0 for n j 1 n0 是 Map n i 0 是 是 Map j i 0 是 否 n 0 否 n n j 1 i 中间纵坐标 否 i j j 中间纵坐标 否 否 map j i 与 Map n i 交换 j 纵向坐标 1 Map n i 0 是 是 Map j i 0 是 否 否 n n j 1 否 j 否 n 纵向坐标 1 是 是 结束 图 4 14 上下向中间靠拢 上下向中间移动算法主要代码 public void moveOmiddle 上下向中间靠拢 int i j n for i 1 i0 j if map i j 0 for n j 1 n 0 n if map i n 0 map i j map i n map i n 0 break for j yCount 2 j yCount 1 j if map i j 0 for n j 1 n yCount 1 n if map i n 0 map i j map i n map i n 0 break 其中 向右移动算法与向左移动算法相似 上下向中间靠拢算法 左右向 中间靠拢算法 中间向左右两边移动算法及中间向上下方向移动算法与上下向 中间移动算法相似 韋鋯鯖荣擬滄閡悬贖蘊 石家庄经济学院本科生毕业论文 23 5 游戏效果 本章介绍连连看游戏设计所实现的最终效果及其操作 1 运行程序后 出现在玩家面前的是欢迎界面 欢迎界面如下图 图 5 1 连连看游戏欢迎界面 石家庄经济学院本科生毕业论文 24 2 进入游戏欢迎界面 点击开始游戏 进入游戏运行界面 如图 5 2 所 示 点击提示图片时 系统自动消除一对图案 但时间不增加 点击刷新图片 时 刷新界面 涛貶騸锬晋铩锩揿宪骟 图 5 2 游戏运行时的界面 石家庄经济学院本科生毕业论文 25 3 进入欢迎界面 点击游戏设置 进入游戏设置界面 如图 5 3 所示 进行一些游戏功能的设置 图 5 3 游戏设置界面 石家庄经济学院本科生毕业论文 26 4 进入游戏欢迎界面 点击关于游戏 如图 5 4 出现介绍游戏规则的 对话框 点击确定回到欢迎界面 图 5 4 关于游戏规则的对话框 石家庄经济学院本科生毕业论文 27 5 进入欢迎界面 点击退出游戏 在运行游戏时点击返回按钮 也是如 下效果 如图 5 5 所示 出现是否退出游戏的提示框 点击确定则退出游戏 点击取消则回到欢迎界面 钿蘇饌華檻杩鐵样说泻 图 5 5 提示是否退出游戏对话框 6 设置界面的按钮效果 点击音乐设置 效果如图 5 6 选择所需设置 或点击取消返回游戏设置界面 图 5 6 音乐设置对话框 7 进入游戏设置界面 点击音效设置 如图 5 7 所示 选择所需设置或 点击取消返回游戏设置界面 图 5 7 音效设置对话框 石家庄经济学院本科生毕业论文 28 8 进入游戏设置界面 点击关卡选择 如下图 选择所要开始的关卡后 返回游戏设置界面 点击保存设置后 返回游戏欢迎界面 戧礱風熗浇鄖适泞嚀贗 图 5 8 关卡选择对话框 9 运行游戏时 点击菜单 效果如 5 9 图 点击重玩 则重新开始这一 关卡 点击暂停 出现如 5 10 图 点击继续 则继续游戏 点击退出 则返回 欢迎界面 購櫛頁詩燦戶踐澜襯鳳 图 5 9 菜单对话框 石家庄经济学院本科生毕业论文 29 图 5 10 暂停游戏对话框 10 消除一对图案时效果 如图 5 11 图 5 11 消除一对连通的图案 石家庄经济学院本科生毕业论文 30 12 游戏失败时界面 如图 5 12 点击 返回欢迎界面 点击 重新玩这一关 图 5 12 游戏失败界面 13 游戏胜利时界面 如下图 点击 返回欢迎界面 点击 重新玩这一关 点击 进入下一关 图 5 13 游戏胜利界面 14 当玩家通过最后一关后 显示游戏结束界面 如下图 点击确定后 返回游戏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论