美文网首页
微信跳一跳小游戏脚本分数控制

微信跳一跳小游戏脚本分数控制

作者: CAICAI0 | 来源:发表于2018-01-23 11:36 被阅读45次

    故事

    微信出了跳一跳小游戏后没有多久就玩了一下,感觉很难(可能是运动太少)。没过多久网上就出了自动脚本。下载后,简单修改运行,最高调到了七千多分。然后,微信把我的成绩给删了。我猜应该是数据离群太明显造成的。这样一来就产生了一个需求--控制分数。

    脚本

    def match(src, template): #判断两张图片的最大相似度  src带判断的图片  template模板
        image_matched = cv2.matchTemplate(src,template,cv2.TM_CCOEFF_NORMED) #模板匹配
        minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(image_matched) #获取匹配结果
        return maxVal #最大值
    
    def readNumber(): #读取分数
        im = cv2.imread("./1.png") #“1.png”为屏幕截图 原来的程序就有
        h,w,c = im.shape
        numberImage = im[236:236+94,144:w] #图片截取有数字的部分
        grayImage = cv2.cvtColor(numberImage,cv2.COLOR_BGR2GRAY) #灰度处理
        retVal,image = cv2.threshold(grayImage,85,255,cv2.THRESH_BINARY) # 二值处理
    
        number = 0
        for i in range(0,9):
            oneBit = image[0:94,(i*92):(i*92+74)] #截取一位数字
            index = 0
            same = 0
            for j in range(0,9) :
                res = match(oneBit,templates[j]) #从0-9数字字模中对比相似度 并找到最大的
                if res > same :
                    same = res
                    index = j
            if same < 0.5 : #如果最大相似度小于0.5  就没有匹配数字了
                break
            else:
                number = number*10+index #进位后相加
        return number
    

    这两个函数主要解决了分数读取的问题。整个代码逻辑的基础是跳一跳小游戏使用了 04B_03B 这个字体 每个字的大小都是一样的。通过固定的位置就可以准确获取单个文字。opencv2 提供的图片对比计算速度还可以。
    具体分数控制,就因人而异了。代码源:https://github.com/caicai0/wechat_jump_game

    相关文章

      网友评论

          本文标题:微信跳一跳小游戏脚本分数控制

          本文链接:https://www.haomeiwen.com/subject/alfsaxtx.html