当前位置: 首页 > news >正文

江苏省建设委员会网站免费网站制作平台

江苏省建设委员会网站,免费网站制作平台,网站建设项目步骤,html网页制作代码范例前言 更新了微信后发现了一款小游戏跳一跳,但是玩了一下午最高才达到200,每次差点破纪录后总是手抖就挂掉了,气的想要砸手机。。闲来无事刷微博的时候正好看到有人分析如何编写脚本自动运行游戏破了3000多分,细看后觉得原理并不复…

前言
更新了微信后发现了一款小游戏跳一跳,但是玩了一下午最高才达到200,每次差点破纪录后总是手抖就挂掉了,气的想要砸手机。。闲来无事刷微博的时候正好看到有人分析如何编写脚本自动运行游戏破了3000多分,细看后觉得原理并不复杂,就索性花了一个晚上,参考大神的实现方法,在他的基础上删减了一些代码,也用Python写了个脚本。接下来进行原理和代码分析。
这里写图片描述
图1.跳一跳启动界面
原理

  1. 配置adb环境变量,在我的电脑–》属性–》高级系统设置–》环境变量–》Path上添加adb.exe所在的路径。

  2. 打开手机的usb调试模式,并连接电脑,打开跳一跳,然后通过adb工具获取当前手机截图,具体指令如下所示:

    adb shell screencap -p /sdcard/1.png
    adb pull /sdcard/1.png

    在程序中的具体代码实现如下所示:

def screenshot():cmd = 'adb shell screencap -p /sdcard/1.png'os.system(cmd)cmd = 'adb pull /sdcard/1.png'os.system(cmd)
  1. 查找棋子的位置,通过颜色来识别棋子,通过将棋子底盘所在行的所有点的x轴坐标相加,然后取平均值获得X轴坐标,将Y轴坐标取最低点减去棋子底盘高度的一半。具体代码实现如下:
#开始查找棋子的坐标,从start_y开始据目测棋子不会位于屏幕底部1/3处
for i in range(start_y, int(height * 2 / 3)):for j in range(border_x, width - border_x):  #删除周围空白部分,加快程序运行速度next_point = im[j,i]# 根据棋子的颜色判断,求所有点的和然后求平均值if (50 < next_point[0] < 60) and (53 <next_point[1] < 63) and (95 < next_point[2] < 110):x1_temp += j #点求和x1_num += 1 #点的个数y1_max = max(i, y1_max)if not all((x1_temp,x1_num)):return 0,0,0,0
x1 = x1_temp / x1_num
y1 = y1_max - piece_height/2  # 棋子Y轴坐标上移到底盘高度的一半
  1. 查找下一个棋盘的位置,一般可以通过两种方法实现。第一种是通过鼠标点击下一个棋盘的位置,具体参考编程美丽写的博客。

http://blog.csdn.net/F0ED9cZN4Ly992G/article/details/78937011

第二种是本文使用的,从上往下一行一行扫描,找到块中点的X轴坐标,然后通过截图中两个具体的棋盘获取的固定的角度,即正切值来推出中点的 Y坐标。 具体代码如下:

#查找下一个棋盘的位置
for i in range(start_y, height * 2 / 3):start_point = im[0, i]if x2 or y2:breakx2_temp = 0x2_num = 0for j in range(width):next_point = im[j,i]if abs(j - x1) < body_width:continue# 棋盘为圆if abs(next_point[0] - start_point[0]) + abs(next_point[1] - start_point[1]) + abs(next_point[2] - start_point[2]) > 10:x2_temp += jx2_num += 1if x2_temp:x2 = x2_temp / x2_num
# 按实际的角度通过tan值来算计算下一个棋盘的中心点的Y轴坐标
y2 = y1 - abs(x2 - x1) * abs(sample_y1 - sample_y2) / abs(sample_x1 - sample_x2)if not all((x2, y2)):return 0, 0, 0, 0
  1. 根据棋子的位置跟下一个棋盘的位置求得两点的具体,推算出长按时间。具体代码如下:
#跳到下一个棋盘
def jump(distance):press_time = distance * presspress_time = max(press_time, 200)   # 设置最小的按压时间位200mspress_time = int(press_time)cmd = 'adb shell input swipe {} {} {} {} {}'.format(swipe_x1, swipe_y1, swipe_x2, swipe_y2, press_time)print(cmd)os.system(cmd)

结果展示
通过运行脚本,能够轻松上分到400+,由于时间原因并没有继续测试,下图为测试时截的动态gif,以及控制台窗口运行结果。
这里写图片描述这里写图片描述
图2.真机运行

这里写图片描述
图3.控制台输出信息
下载链接:http://download.csdn.net/download/qq_22408539/10187952

http://www.hkea.cn/news/729474/

相关文章:

  • 互联网有哪些岗位宁波免费seo在线优化
  • 惠州做棋牌网站建设哪家技术好哪里的网络推广培训好
  • 如何做线上赌博的网站推广策略有哪些方法
  • 男的女的做那个视频网站百度收录需要多久
  • 大通县wap网站建设公司网站免费制作
  • 哪个网站教做公众号甘肃百度推广电话
  • 网站怎么让百度收录广告网络推广
  • 小型网站设计及建设论文定制网站制作公司
  • 视频网站建设费用排名优化网站seo排名
  • 怎么自己做网站服务器linux百度账号查询
  • 梧州网站推广方案百度热搜 百度指数
  • 网站不兼容ie6自助建站模板
  • 甘肃网站建设公司百中搜优化软件
  • 国内外贸网站建设公司seo教程 百度网盘
  • 一物一码二维码生成系统最好用的系统优化软件
  • 如何在大网站做外链镇江网站建站
  • 杭州网站建设公司导航短视频营销案例
  • 昆明做网站建设有哪些长尾关键词排名工具
  • 一女被多男做的视频网站网站seo系统
  • 网站建设 青海网站建设找哪家好
  • win7 网站配置优化方案官网电子版
  • 广州seo优化公司排名浙江seo博客
  • 全网推广的方式有哪些抖音seo推荐算法
  • 网站开发开源架构抖音营销软件
  • 自己做的网站能放到网上么青岛seo经理
  • 营业推广策划方案邵阳网站seo
  • 手机网站横向切换kol合作推广
  • 专门做超市海报的网站宁波seo咨询
  • 仿网站上的焦点图在线看seo网站
  • 做网站的业务员艾滋病阻断药有哪些