Flash AS3版连连看游戏核心算法
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
t; row; y2++) { if (m.get(max_x-1, y2) != 0) return new Point(max_x-1, y2); } } } return null; } private function _findRestPointB(a:Point, ignore_b_arr:Array = null):Point { if (!a) return null; var tempMap:Array2 = ArrayUtil.cloneArray2(_map); tempMap.set(a.x, a.y, 0); if (ignore_b_arr && ignore_b_arr.length) { for each (var bb:Point in ignore_b_arr) tempMap.set(bb.x, bb.y, 0); } var b:Point = _findRestPointA(tempMap); if (!b) return null; while ( _map.get(a.x, a.y) != _map.get(b.x, b.y) ) { tempMap.set(b.x, b.y, 0); b = _findRestPointA(tempMap); if (!b) return null; } return b; } /********************** 公开方法 **********************/ /** * 测试两点是否可以连通 * @param a * @param b * @usage 判断 两点的值相同 并且 满足连通条件 * @return */ public function test(a:Point, b:Point):Boolean { _result = new MatchResult(); if (_map.get(a.x, a.y) != _map.get(b.x, b.y)) return false; if ( _hTest(a, b) || _vTest(a, b) || _oneCorner(a, b) || _twoCorner(a, b) ) return true; else return false; } /** * 自动寻找一条可连通的路径 * @return */ public function autoFindLine():MatchResult { var a:Point = _findRestPointA(); if (!a) return null; var b:Point = _findRestPointB(a); if (!b) return null; var ignoreA:Array = []; var ignoreB:Array = []; while ( !this.test(a, b) ) { ignoreB.push(b); b = _findRestPointB(a, ignoreB); //基于A没有可以连通的点了, 换一个A试试 if (!b) { ignoreB = []; ignoreA.push(a); var tempMap:Array2 = ArrayUtil.cloneArray2(_map); tempMap.set(a.x, a.y, 0); if (ignoreA.length) for each (var p:Point in ignoreA) tempMap.set(p.x, p.y, 0); a = _findRestPointA(tempMap); b = _findRestPointB(a); } } //找不到可以连通的B点 if (!b) return null; return _result.clone(); } /** * 清除两点 * @param a * @param b */ public function earse(a:Point, b:Point):void { _map.set(a.x, a.y, 0); _map.set(b.x, b.y, 0); _restBlock -= 2; } /** * 刷新 */ public function refresh():void { var num:uint = this.count; if (num <= 0) return; _array = ArrayUtil.random( ArrayUtil.getWarppedMapArray(_map) ); ArrayUtil.drawWrappedMap(_array, _map); } } } 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash AS3版连连看游戏核心算法的所有评论