#源码下载地址:https://files.cnblogs.com/files/cnfan/jump.rar

importosimportcv2importnumpy as npimporttimeimportrandom#使用的Python库及对应版本:#python 3.6#opencv-python 3.3.0#numpy 1.13.3#用到了opencv库中的模板匹配和边缘检测功能

defget_screenshot(id):#os.system('adb shell /system/bin/screencap -p /sdcard/screenshot.png')#获取当前界面的手机截图

#os.system('adb pull /sdcard/screenshot.png d:/fan/screenshot.png')#下载当前这个截图到当前电脑当前文件夹下

os.system('adb shell screencap -p /sdcard/%s.png' %str(id))

os.system('adb pull /sdcard/%s.png .' %str(id))defjump(distance):#这个参数还需要针对屏幕分辨率进行优化

press_time = int(distance * 1.35)#生成随机手机屏幕模拟触摸点

#模拟触摸点如果每次都是同一位置,成绩上传可能无法通过验证

rand = random.randint(0, 9) * 10cmd= ('adb shell input swipe %i %i %i %i' +str(press_time)) \% (320 + rand, 410 + rand, 320 + rand, 410 +rand)

os.system(cmd)print(cmd)defget_center(img_canny, ):#利用边缘检测的结果寻找物块的上沿和下沿

#进而计算物块的中心点

y_top = np.nonzero([max(row) for row in img_canny[400:]])[0][0] + 400x_top=int(np.mean(np.nonzero(canny_img[y_top])))

y_bottom= y_top + 50

for row inrange(y_bottom, H):if canny_img[row, x_top] !=0:

y_bottom=rowbreakx_center, y_center= x_top, (y_top + y_bottom) // 2

returnimg_canny, x_center, y_center#第一次跳跃的距离是固定的

jump(530)

time.sleep(1)#匹配小跳棋的模板

temp1 = cv2.imread('temp_player.jpg', 0)

w1, h1= temp1.shape[::-1]#匹配游戏结束画面的模板

temp_end = cv2.imread('temp_end.jpg', 0)#匹配中心小圆点的模板

temp_white_circle = cv2.imread('temp_white_circle.jpg', 0)

w2, h2= temp_white_circle.shape[::-1]#循环直到游戏失败结束

for i in range(1000):

get_screenshot(0)

img_rgb= cv2.imread('%s.png' %0, 0)#如果在游戏截图中匹配到带"再玩一局"字样的模板,则循环中止

res_end =cv2.matchTemplate(img_rgb, temp_end, cv2.TM_CCOEFF_NORMED)if cv2.minMaxLoc(res_end)[1] > 0.95:print('Game over!')break

#模板匹配截图中小跳棋的位置

res1 =cv2.matchTemplate(img_rgb, temp1, cv2.TM_CCOEFF_NORMED)

min_val1, max_val1, min_loc1, max_loc1=cv2.minMaxLoc(res1)

center1_loc= (max_loc1[0] + 39, max_loc1[1] + 189)#先尝试匹配截图中的中心原点,

#如果匹配值没有达到0.95,则使用边缘检测匹配物块上沿

res2 =cv2.matchTemplate(img_rgb, temp_white_circle, cv2.TM_CCOEFF_NORMED)

min_val2, max_val2, min_loc2, max_loc2=cv2.minMaxLoc(res2)if max_val2 > 0.95:print('found white circle!')

x_center, y_center= max_loc2[0] + w2 // 2, max_loc2[1] + h2 // 2

else:#边缘检测

img_rgb = cv2.GaussianBlur(img_rgb, (5, 5), 0)

canny_img= cv2.Canny(img_rgb, 1, 10)

H, W=canny_img.shape#消去小跳棋轮廓对边缘检测结果的干扰

for k in range(max_loc1[1] - 10, max_loc1[1] + 189):for b in range(max_loc1[0] - 10, max_loc1[0] + 100):

canny_img[k][b]=0

img_rgb, x_center, y_center=get_center(canny_img)#将图片输出以供调试

img_rgb = cv2.circle(img_rgb, (x_center, y_center), 10, 255, -1)#cv2.rectangle(canny_img, max_loc1, center1_loc, 255, 2)

cv2.imwrite('last.png', img_rgb)

distance= (center1_loc[0] - x_center) ** 2 + (center1_loc[1] - y_center) ** 2distance= distance ** 0.5jump(distance)

time.sleep(1.3)

跳一跳python源码下载_微信跳一跳python程序相关推荐

  1. 跳一跳python源码下载_微信跳一跳python代码实现

    本文实例为大家分享了python微信跳一跳的具体代码,供大家参考,具体内容如下 部分代码分享: wechat_jump.py from __future__ import print_function ...

  2. 跳一跳python源码下载_微信跳一跳游戏python脚本

    微信更新后出来了一块比较火的小游戏,要是一款不涉及到排行的游戏,可能 没人去关注这款游戏.最开自己一直苦练技术,想在微信排行上面装一装,练了好久才跑三百多分.接着在Github(Github地址),有 ...

  3. 跳一跳python源码下载_教程 跳一跳源码

    这个压缩包为跳一跳工具源码 (安卓版) 仅供代码爱好者交流研究, 且不可用作其他用途,否则后果自负!!! 本来想分享一点数据分析领域-回归预测模型解读与实际工作中发挥用处 后来看到朋友圈被跳一跳霸屏, ...

  4. 跳一跳python源码下载_python 微信跳一跳和源码解读

    刚好周末,想研究一下前阵子很火的微信跳一跳 下面进入正文. 本文适用对象为WIN10系统,安卓用户.目的在于让丝毫没有接触过Python的小伙伴都能成功运行,如果你恰好是这样的对象,那么跟着我开始操作 ...

  5. 跳一跳python源码下载_《跳》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...

    基本词义 ◎ 跳 tiào 〈动〉 (1) (形声.从足,兆声.本义:跃) (2) 同本义 [jump:leap:spring] 跳,-一曰跃也.--<说文> 特跳此者.--<左传· ...

  6. 跳一跳python源码下载_Python玩跳一跳【简】

    准备环境: Windows 10: [有] 安卓手机 [有] python(版本建议3以上) adb驱动 依赖安装包 Python下载安装[官网下载并安装] 详情参见 pip安装 pip用于安装依赖包 ...

  7. 在线制作微信跳转链接源码可以实现微信跳转浏览器打开指定页面的功能

    源码使用场景: 1.用来实现微信自动跳转外部浏览器下载app 2.用来实现微信内打开网页链接自动跳转浏览器访问指定页面 3.防止网页链接由于被微信拦截,导致用户无法正常在微信内打开 源码说明: 适用安 ...

  8. python源码学习_【Python学习】Python源码阅读(一)

    最近想读读Python源码,任何东西学习方法基本都是一样的,先从总体框架进行了解,再从自己侧重的方面逐步深入. 1. Python总体架构 左边是Python提供的大量的模块.库以及用户自定义的模块. ...

  9. python源码下载

    python源码下载 (2010-12-18 23:11) 不知道python.org一直被堵在墙外-  1.http://ftp.python.org/ftp/python/  2.http://w ...

最新文章

  1. deepin 远程linux,在Deepin Linux操作系统中如何连接Microsoft OneDrive
  2. JAVA NIO之文件通道
  3. html大学生活主题班会,“大学生活”主题班会记录范文
  4. Spring配置文件简介
  5. 参考文献的序号怎么对齐_学术论文发表写作格式、具体要求和参考文献的要求模板...
  6. c语言中的三角函数公式,tan三角函数公式有哪些
  7. android ptp 源码分析,ptp增加豆瓣评分
  8. verilog从txt中读取_将Verilog中的二进制文件数据读入2D数组
  9. 计算机安装不了cad2007,win7系统电脑中安装cad2007不兼容无法打开的解决方法
  10. docker 部署 kong konga postgresql 以及konga配置
  11. 读书 - 躬行 - 悟道
  12. 柔性显示实现的关键技术
  13. 蓝桥杯:每周一题之高斯的日记
  14. 小程序兼容各个ios版本
  15. windows系统下python3 安装 matplotlib 出现的错误
  16. 英文文献检索(一) web of science使用
  17. Ubuntu18.04 添加 windows 共享的打印机
  18. 如何将一张表的数据复制到另一张表(sql yog)
  19. ERP系统实施的难点有哪些
  20. 火狐浏览器下载,使用其自带的截图工具

热门文章

  1. ARM Cortex-A8体系结构
  2. java jsp 日历_一个用JSP做的日历
  3. 无线串口服务器连接plc,4G/5G无线PLC远程控制
  4. 烤仔的朋友们丨Bancor 是什么?
  5. 社交APP开发将依托大数据与网络算法?
  6. 龙芯处理器是否可以运行windows操作系统
  7. Python数据分析 3.numpy数据科学库
  8. .NET Core Web API上为CORS启用OPTIONS标头
  9. 决策树—基本原理与实战
  10. initramfs两种方法恢复_微信会话记录删除了怎么恢复?最权威的方法在这