消消乐模型经典算法

function dismissTile(colorNum) {//找到能消除的方块
    var webView=className("android.webkit.WebView").findOne(2000);
    if(webView) {
        return false;
    }
    var tileName="xiong_mao_"+colorNum+".jpg";
    var imgList=findMultiImgMax(tileName,"xiong_mao_"+colorNum,0.7,30,false,false);
    tip("方块个数:"+imgList.length);
    var indexList=[];
    for(var i=0;i<imgList.length;i++) {
        var imgInfo=imgList[i];
        var x=imgInfo.x;
        var y=imgInfo.y;
        //tip(i+" anchor x="+x+",y="+y+",w="+imgInfo.width+",h="+imgInfo.height);
        uiUtil.addPointAppend(x,y,"#0000ff");//test
        var linkCount=0;
        /*
        for(var j=0;j<imgList.length;j++) {
            if(i==j) {
                continue;
            }
            var nextImgInfo=imgList[j];
            var nextX=nextImgInfo.x;
            var nextY=nextImgInfo.y;
            if(i==0) {
                uiUtil.addPointAppend(nextX,nextY,"#00ff00");
            }
            //tip(j+" x="+nextX+",y="+nextY+",w="+nextImgInfo.width+",h="+nextImgInfo.height);
            var isXValid=Math.abs(x-nextX)<imgInfo.width/2&&Math.abs(y-nextY)<imgInfo.height*1.5;//竖排
            var isYValid=Math.abs(y-nextY)<imgInfo.height/2&&Math.abs(x-nextX)<imgInfo.width*1.5;//横排
            //tip("isXValid="+isXValid+",isYValid="+isYValid);
            if(isXValid||isYValid) {//竖相邻,或横相邻
                linkCount++;
            }
        }*/
        if(linkCount>=0) {//2的太少 ,主要是识别不准啊.全部点吧
            //i的方块可消除
            indexList.push(i);
        }else {
            tip("link="+linkCount);
            imgList.splice(i,1);//删除元素i,是这个用法吗?
            i--;
        }
    }
    if(indexList.length>0) {
        
        toast("已识别全部方块:"+indexList.length);
        sleep(2000);
        var targetIndex=random(0,indexList.length-1);
        for(var i=0;i<indexList.length;i++) {
            var imgInfo=imgList[i];
            var x=imgInfo.x;
            var y=imgInfo.y;
            //uiUtil.addPointAppend(x,y,"#ffff00");
            click(x,y);
            if(i%6==5) {//连点几下再
                sleep(2000);
                //uiUtil.addPoint(x,y);
                var openView=findImgOpen();
                if(openView) {
                    
                    break;
                }
            }
            sleep(200);
        }
        uiUtil.deleteAllPoint();
        return true;
        
    }else {
        tip("无合理的可消除的方块");
        return false;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值