《夺宝奇兵》开发文档

上传人:新** 文档编号:457705009 上传时间:2023-08-25 格式:DOC 页数:9 大小:475.50KB
返回 下载 相关 举报
《夺宝奇兵》开发文档_第1页
第1页 / 共9页
《夺宝奇兵》开发文档_第2页
第2页 / 共9页
《夺宝奇兵》开发文档_第3页
第3页 / 共9页
《夺宝奇兵》开发文档_第4页
第4页 / 共9页
《夺宝奇兵》开发文档_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《《夺宝奇兵》开发文档》由会员分享,可在线阅读,更多相关《《夺宝奇兵》开发文档(9页珍藏版)》请在金锄头文库上搜索。

1、夺宝奇兵开发文档本游戏为连连看类型游戏,老少皆宜,连连看类型游戏有广泛的群众基础。游戏中一改往常选关模式,设计成关卡挑战模式,玩家总共需要经历6座城市最终到达目的地并获取宝物,玩法方面能够更加的引人入胜。寻找大量宝石做为基本素材,绘制了6类共35种精美宝石图块,游戏界面整体风格美观且统一。游戏基本结构:游戏整体为模式化设计,主要由四个类块组成,程序整体结构图如下:_游戏道具类_用户时间分数类_关卡处理类_连连看类关卡处理类:负责整个游戏的关卡跟流程处理;连连看类:游戏核心算法处理,同时负责游戏图块跟画面的生成跟屏幕输出;游戏道具类:处理游戏道具跟数量信息功能扩充辅助用户时间分数类:处理用户名/

2、事件/分数功能扩充辅助游戏核心算法详解:注:由于算法是我自己研究出来的,研究过程中没有参考任何相关资料,可能还有很多不完善的地方,还请谅解!本处主要以图解为主,如果您对算法还有不明白的地方,请直接参考源代码中的连连看类具体算法部分在 寻路() 函数中目标:检测A1是否可以链接到B1算法讲解图片步骤:检测A1到A2是否一路都为空数据真假检测B1到B2是否一路都为空数据真假真假可以连通不能连通从上往下检测A1的Y纵向坐标跟B1的相同的Y坐标处是否一路为空(本处A1跟B1的Y坐标都等于2时是可以连通的即A2到B2是可以连通的)继续检测下一个Y坐标的值检测Y坐标是否为最大值真假附加说明:通过上面的步骤

3、图解,我们很容易可以理解两个横向图块的连结检测的原理那么我们如何实现纵向图块的连结呢?其实很简单,请看下图:对了,算法步骤跟上面的一样,只是横纵向的位置变了。同理,以下几种情况都可以通过这种方式来处理:如何横纵向都可以判断呢?思考思考!呵呵,你想出来了吗?就是先检测横向,如果没有可以连通的图块,则检测纵向,如果都没有,则表示连通失败!代码参考:注:本处寻路函数代码段,只为程序的部分代码,并不能直接编译,还有较详细的注释,可直接贴到易语言中做为算法理解的参考- 代码段开始 -.版本 2.子程序 寻路, 逻辑型, 公开.参数 上次坐标, 坐标.参数 当前坐标, 坐标.参数 顺序路径坐标, 坐标,

4、参考 可空 数组, 存放路过的路径信息.局部变量 循环变量, 整数型.局部变量 纵向循环, 整数型, , 2.局部变量 横向循环, 整数型, , 2.局部变量 临时纵向循环, 整数型.局部变量 临时横向循环, 整数型.局部变量 连通成功, 逻辑型.局部变量 临时整数变量, 整数型.局部变量 临时坐标变量, 坐标.局部变量 连接路径, 坐标, , 0.局部变量 最优位置, 整数型.如果真 (上次坐标.纵向坐标 0 或 上次坐标.横向坐标 0 或 当前坐标.纵向坐标 0 或 当前坐标.横向坐标 0 或 上次坐标.纵向坐标 _纵向块数 2 或 上次坐标.横向坐标 _横向块数 2 或 当前坐标.纵向坐

5、标 _纵向块数 2 或 当前坐标.横向坐标 _横向块数 2) 返回 (假).如果真结束.如果真 (_数据数组 上次坐标.纵向坐标 上次坐标.横向坐标.数据内容 _数据数组 当前坐标.纵向坐标 当前坐标.横向坐标.数据内容) 返回 (假).如果真结束.如果真 (_数据数组 上次坐标.纵向坐标 上次坐标.横向坐标.数据内容 0 或 _数据数组 当前坐标.纵向坐标 当前坐标.横向坐标.数据内容 0) 返回 (假).如果真结束重定义数组 (连接路径, 假, 0) 最优位置 0.计次循环首 (_纵向块数 2, 循环变量) 先假定路径可以连通 连通成功 真 判断上次坐标的纵向坐标到循环变量是否能够连通 即

6、判断 坐标(上次坐标.横向坐标,上次坐标.纵向坐标) 与 坐标(上次坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (循环变量, 上次坐标.纵向坐标, 选择 (循环变量 上次坐标.纵向坐标, -1, 1), 纵向循环 1) .如果真 (_数据数组 纵向循环 1 上次坐标.横向坐标.数据内容 0 且 纵向循环 1 上次坐标.纵向坐标) 连通成功 假 跳出循环 () .如果真结束 .变量循环尾 () 判断当前坐标的纵向坐标到循环变量是否能够连通 即判断 坐标(当前坐标.横向坐标,当前坐标.纵向坐标) 与 坐标(当前坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (循环变量, 当前坐

7、标.纵向坐标, 选择 (循环变量 当前坐标.纵向坐标, -1, 1), 纵向循环 2) .如果真 (_数据数组 纵向循环 2 当前坐标.横向坐标.数据内容 0 且 纵向循环 2 当前坐标.纵向坐标) 连通成功 假 跳出循环 () .如果真结束 .变量循环尾 () 判断两个坐标的横向坐标与纵向坐标为循环变量两点是否能够连通 即判断 坐标(上次坐标.横向坐标,循环变量) 与 坐标(当前坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (上次坐标.横向坐标, 当前坐标.横向坐标, 选择 (上次坐标.横向坐标 当前坐标.横向坐标, -1, 1), 临时横向循环) .如果真 (_数据数组 循环变量

8、 临时横向循环.数据内容 0 且 临时横向循环 上次坐标.横向坐标 且 临时横向循环 当前坐标.横向坐标) 连通成功 假 跳出循环 () .如果真结束 .变量循环尾 () .如果真 (连通成功) .如果 (最优位置 0) 最优位置 循环变量 .否则 最优位置 选择 (取绝对值 (上次坐标.纵向坐标 循环变量) 取绝对值 (当前坐标.纵向坐标 循环变量) 取绝对值 (上次坐标.纵向坐标 最优位置) 取绝对值 (当前坐标.纵向坐标 最优位置), 循环变量, 最优位置) .如果结束 .如果真结束.计次循环尾 ().如果真 (最优位置 0) 先加入初始节点坐标 加入成员 (连接路径, 上次坐标) .如

9、果真 (上次坐标.横向坐标 当前坐标.横向坐标) 判断第二个节点坐标 .如果真 (取绝对值 (最优位置 上次坐标.纵向坐标) 0) 临时坐标变量.横向坐标 上次坐标.横向坐标 临时坐标变量.纵向坐标 最优位置 加入成员 (连接路径, 临时坐标变量) .如果真结束 判断第三个节点坐标 .如果真 (取绝对值 (最优位置 当前坐标.纵向坐标) 0) 临时坐标变量.横向坐标 当前坐标.横向坐标 临时坐标变量.纵向坐标 最优位置 加入成员 (连接路径, 临时坐标变量) .如果真结束 .如果真结束 最后加入结尾点坐标 加入成员 (连接路径, 当前坐标) 顺序路径坐标 连接路径 返回 (真).如果真结束 最

10、优位置 0.计次循环首 (_横向块数 2, 循环变量) 先假定路径可以连通 连通成功 真 判断上次坐标的纵向坐标到循环变量是否能够连通 即判断 坐标(上次坐标.横向坐标,上次坐标.纵向坐标) 与 坐标(上次坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (循环变量, 上次坐标.横向坐标, 选择 (循环变量 上次坐标.横向坐标, -1, 1), 横向循环 1) .如果真 (_数据数组 上次坐标.纵向坐标 横向循环 1.数据内容 0 且 横向循环 1 上次坐标.横向坐标) 连通成功 假 .如果真结束 .变量循环尾 () 判断当前坐标的纵向坐标到循环变量是否能够连通 即判断 坐标(当前坐标.

11、横向坐标,当前坐标.纵向坐标) 与 坐标(当前坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (循环变量, 当前坐标.横向坐标, 选择 (循环变量 当前坐标.横向坐标, -1, 1), 横向循环 2) .如果真 (_数据数组 当前坐标.纵向坐标 横向循环 2.数据内容 0 且 横向循环 2 当前坐标.横向坐标) 连通成功 假 .如果真结束 .变量循环尾 () 判断两个坐标的横向坐标与纵向坐标为循环变量两点是否能够连通 即判断 坐标(上次坐标.横向坐标,循环变量) 与 坐标(当前坐标.横向坐标,循环变量) 是否能够连通 .变量循环首 (上次坐标.纵向坐标, 当前坐标.纵向坐标, 选择 (上次坐标.纵向坐标 当前坐标.纵向坐标, -1, 1), 临时纵向循环) .如果真 (_数据数组 临时纵向循环 循环变量.数据内容 0 且 临时纵向循环 上次坐标.纵向坐标 且 临时纵向循环 当前坐标.纵向坐标) 连通成功 假 .如果真结束 .变量循环尾 () 检测失败便执行下次循环 .如果真 (连通成功 假) 到循环尾 () .如果真结束 .如果真 (连通成功) .如果 (最优位置 0) 最优位置 循环变量 .否则 最优位置 选择 (取绝对值 (上次坐标.横向坐标 循环变量) 取绝对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号