7.1
2016-07-04 08:44
253 查看
三消游戏
因为三消比较难,考虑还是讲一下消除的算法,然后再扩展到三消
在昨日点击的基础上,开始讲解消除
消除就是点击一个块儿,如果该块儿周围同颜色的块儿数量大于3,则这些块儿一起消除
1.思考如何获取点击块儿周围的块儿的颜色
a.由该块儿下标和检查数组[[-1,0],[1,0],[0,-1],[0,1]]进行周围检查
b.检查是否越界
c.检查颜色是否相同
2.修改上面的函数,将其改为接受一个二维下标,传回的是该下标周围颜色相同的下标的数组
3.拼接2个数组,删除掉其中相同的元素
filterDelSame:function(arr1,arr2){
var returnArr = arr1.concat(arr2)
for(var i = 0 ;i<returnArr.length;i++){
var nowPo = returnArr[i]
for(var j = i+1 ;j<returnArr.length;j++){
if(cc.pSameAs(returnArr[j],nowPo)){
returnArr.splice(j,1)
j-- // 上面删除了一个元素,下标需要减一
}
}
}
return returnArr
},
因为三消比较难,考虑还是讲一下消除的算法,然后再扩展到三消
在昨日点击的基础上,开始讲解消除
消除就是点击一个块儿,如果该块儿周围同颜色的块儿数量大于3,则这些块儿一起消除
1.思考如何获取点击块儿周围的块儿的颜色
a.由该块儿下标和检查数组[[-1,0],[1,0],[0,-1],[0,1]]进行周围检查
b.检查是否越界
c.检查颜色是否相同
2.修改上面的函数,将其改为接受一个二维下标,传回的是该下标周围颜色相同的下标的数组
3.拼接2个数组,删除掉其中相同的元素
filterDelSame:function(arr1,arr2){
var returnArr = arr1.concat(arr2)
for(var i = 0 ;i<returnArr.length;i++){
var nowPo = returnArr[i]
for(var j = i+1 ;j<returnArr.length;j++){
if(cc.pSameAs(returnArr[j],nowPo)){
returnArr.splice(j,1)
j-- // 上面删除了一个元素,下标需要减一
}
}
}
return returnArr
},
相关文章推荐
- DHCP配置
- 聊聊同步、异步、阻塞与非阻塞
- IOS人脸识别
- 把普通对象转换成json格式的对象的简单实例
- Java集合源码分析(四)Vector<E>
- vuejs学习网站推荐
- 配置并检验 RIPng 路由
- 配置并检验 S1 上的安全功能
- 三消游戏的理解(2)
- 轻量级分布式 RPC 框架
- 配置 OSPFv3 路由、配置 OSPFv3 被动接口
- 富文本编辑器代码
- php 注册审核
- MySQL查询表内重复记录
- Android资源管理框架(Asset Manager)简要介绍和学习计划
- POJ 3258 (NOIP2015 D2T1跳石头)
- POJ 3258 (NOIP2015 D2T1跳石头)
- 富文本编辑器
- PPP封装--PAP认证、CHAP验证
- 文件上传代码