初始布局很简单,只要保证每一个图片的数字都是偶数就可以。然后生成一些随机数,对其中的棋子进行交换。但是,边界上用0表示,这是因为边界上的任何棋子不能相互交换的。当图片被消除后,就将数组对应的位置置0。多次交换,棋盘就是乱的,所以每次都要判断是否有没有解。
3.1.2判断两个点的连通性
两个点的连线上有三种类型:直连、一折连、二折连。
直连型:两个棋子在同一行或者同一列,且中间没有棋子。这种情况最简单。可以分为横向连接和纵向连接。
一折连:经过一个折点相连的情况,对于这种这点是固定的,只可能在两个位置,我们只要判断这个折点和两个棋子能否直接相连即可。
二折连:连接有连个折点,首先要找棋子左右没有可以延伸的空位,然后计算两个棋子水平延伸的公共部分,在公共部分中找有没有可以直连的。水平延伸的公共部分为最左边的两个空位,通过这两个折点可以把两个棋子连起来。做完水平扫描,发现棋子不能相连,还应该用同样的方法做一次垂直扫描延伸的公共部分,才能最终判断两个棋子能不能相连。
3.2连连看游戏结构分析
连连看小游戏实现了连连看的连线消除功能、游戏倒计时、帮助提示、重新排列功能。其总体结构如图1所示。
图1 连连看总体结构
程序主要包含两大模块:表示层模块和后台逻辑模块。
表层模块可以更好的使游戏UI界面人性化,简洁美观而又大方。
(1)当结束一局后有一个菜单选项包括结束游戏,重新开始,下一关的按钮,用户可以自我选择。
(2)表示层模块中,重要的是实现游戏的布局地图View,游戏的布局将使用自定义View的方式,在屏幕上贴图实现。
(3)为了有一个友好的用户交互环境,使用户感到身心娱乐,表层模块中有个音效Player模块,在不同的状态场景下播放不同的游戏音效。
后台逻辑模块是整个程序运行的基础。它的作用是对程序计算的实现与程序各种状态的监听。
(1)此模块中,对游戏剩余时间的监听,将开启单独的线程进行处理,从而不至于影响主程序逻辑的运行;与此同时对游戏的状态也要进行监控和处理。游戏的状态包括游戏界面的更新,游戏的输赢,游戏的暂停与否。但是,游戏的暂停同时要对剩余时间的暂停。在程序中主要定义了界面显示类BoardView、消息提示类GameView、各模块监听类Listener、 难度设定类MyDialog、音效控制类SoundPlayer用来完成此模块的功能。
(2)核心算法的实现,程序中核心算法是游戏运行的重中之重,是程序顺利进行不可或缺的主体,其包括连接算法、Hint算法和死锁算法。
4.系统的详细设计与实现
4.1Android开发环境的搭建
(1)下载安装eclipse软件安装 Eclipse 插件 (ADT)。
(2)启动 Eclipse,选择 Help > Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”, 然后点击Archive,浏览和选择已经下载的ADT插件压缩文件。点击 OK.。返回可用软件的视图,你会看到这个插件,然后选择Developer Tools (会选中下面的“Android Developer Tools”和 “Android Editors”),点击 Next,最后重启 Eclipse。
(3)下载安装Android SDK,Android SDK包含了开发Android应用所依赖的jar文件、运行环境及相关工具。下载地址:http://dl.google.com/android/installer_r15-windows.exe下载完SDK后,把.zip文件解压到电脑上合适位置。启动 Eclipse,window->preferences,在打开的视图左边点击android,在右边的SDK Location中选择Android SDK所在位置。
- 上一篇:C#+sqlserver物资管理信息系统的设计与实现
- 下一篇:C#+sqlserver图书馆管理系统的设计与实现
-
-
-
-
-
-
-
乳业同业并购式全产业链...
河岸冲刷和泥沙淤积的监测国内外研究现状
当代大学生慈善意识研究+文献综述
电站锅炉暖风器设计任务书
十二层带中心支撑钢结构...
中考体育项目与体育教学合理结合的研究
java+mysql车辆管理系统的设计+源代码
杂拟谷盗体内共生菌沃尔...
大众媒体对公共政策制定的影响
酸性水汽提装置总汽提塔设计+CAD图纸