我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!


从前几天微信最新版本 6.6.1 的更新开始,微信小程序游戏“跳一跳”似乎在一夜之间风靡了朋友圈。


它甚至比五六年前的飞机大战游戏都火爆,这种小游戏的火爆不仅仅是因为有魔性、有意思,更重要的是可以进行好友 PK!

“跳一跳”的小游戏推出后,很多准备奋发向上的同学,这个假期的美好愿景被毁了。


为了多跳几步,以及朋友圈的排名,

大家在整个假期都是这样的:

就这样跳啊跳...

挤地铁跳,蹲马桶跳,乘电梯跳,

静默的每 1 秒都不能浪费

在办公室,还要时刻警觉后面...

说好的工作呢...我控制不住我自己啊!

可是很多人费尽心思跳了一下午

也没超过 100 分

但排行榜里四分之三的人都超过三位数了……

真是扎心了……


今天小编来告诉你,如何才能获取高分,如何才能占据朋友圈榜首?


游戏攻略拿高分


普通版本的高分秘籍是这样的:

  • 如果你每次都能挑到各自的正中间的话,可以 + 2 分,如果连着跳到中间会 + 4、+6、+8、+10……

  • 跳到污水井盖上面,停留 2 秒,等到下水道声音响起直接 + 5 分

  • 跳到魔方上面,停留 2 秒,等到魔方转正会直接 + 10 分

  • 跳到音乐盒上面,停留 2 秒,等到音乐响起会直接 + 30 分

  • 跳到便利店,停留 2 秒,等到便利店开门会直接 + 15 分

以上是针对普通用户,但对咱们程序猿来说用这套太 Low 了,接下来要说的是如何从技术层面去实现高分:

技术手段实现高分

通过 Python 手段


在 Github 上面已经有人用 Python 来玩跳一跳这个游戏了,想多少分就有多少分。


GitHub 地址:https://github.com/wangshub/wechat_jump_game


步骤:

  • 安卓手机打开 USB 调试,设置》开发者选项》USB 调试。

  • 电脑与手机 USB 线连接,确保执行 adb devices 可以找到设备 id。

  • 界面转至微信跳一跳游戏,点击开始游戏。

  • 运行 python wechat_junp_auto.py,如果手机界面显示 USB 授权,请点击确认。


很有趣!简单点说就是:用电脑帮你玩微信跳一跳,全自动,不用手动。效果:

这里梳理一份稍微完整一点的操作步骤,以 Mac 的为例,Win 的思路是一样的。


另外,这里用的是安卓手机,iOS 也差不多,不过要下载一个 5.5GB 的 Xcode。


1、下载程序,打开下面的链接,点右侧 clone or download,再点 download zip。

2、解压 zip 文档,再把文件夹挪到桌面,打开文件夹,你会看到很多东东:

3、打开 mac 系统自带的“终端”,这是一个命令行应用,win 用 cmd 就可以了吧。

4、通过终端进入文件夹,命令行如下:


~/Decktop/wechat_jump_game-master


5、安装 pip,在终端输入 sudo easy_install pip 再回车,可能要输入密码。


6、安装各种依赖程序,在终端输入 pip install -r requirements.txt 再回车,系统会自动安装。


requirements.txt 就是文件夹里的一个 txt 文档,里面写着会自动安装哪些程序。


pip 就是第 5 步安装的程序,如果没安装,pip install -r requirements.txt 将无法执行。

7、安装 adb,打开下面的链接查看,有 3 种方法,建议用第二种,是英文,如果你不懂英文可以百度中文教程。


https://stackoverflow.com/questions/31374085/installing-adb-on-mac-os-x


8、打开安卓手机的设置 - 开发者选项 - USB 调试(如果没有开发者选项,可百度打开开发者选项的方法),用 USB 线连接手机和电脑,手机可能会弹出对话框,点同意。

如果出现运行脚本后小人不跳的情况,请检查是否有打开“USB 调试(安全模式)”,记得顺便打开 USB 模拟点击。

9、在终端输入 adb devices,如果看到下面这种信息,说明 adb 已正确安装,也说明电脑成功检测到手机。

如果你系统是 Win10 或 Win8 可能需要先设置一下“禁用强制驱动程序签名”。

不然会出现下面的“文件的哈希值不在指定目录中”安装不上 adb 驱动的问题,网上有教程请自行学习。

10、打开微信跳一跳点开始,在终端输入 python wechat_jump_auto.py 点回车,游戏就会自动开始~ 请根据手机分辨率运行相应的 *.py 文件。

注意:

  • 我跳了很多次,最后都会掉下盒子,暂时最多只能跳到 1800+ 分,不能一直跳下去。

  • 分辨率不同,配置文件也不一样,具体看 config 这个文件夹。

  • 别刷太高分,有人刷到 4000,结果分数被微信清零。


实验结果:

只要有耐心,你就是王者

下面分析一下代码,Main 部分有一个 While 循环,只要你不终止,它会一直重复操作。

Main部分代码里面主要调用的自定义函数有三个,还有一个 time.sleep 是为了延迟一下:

  • pull_screenshot() #获取图像

  • find_piece_and_board(im) #根据图像获取两个点的坐标值

  • jump(math.sqrt((board_x - piece_x) ** 2 + (board_y - piece_y) ** 2))#根据两点距离和手机像素计算按压时间并 JUMP


pull_screenshot()

这个函数主要是利用 adb 来获取图像,这里顺便说一下“adb”,adb 是连接 Android 手机与 PC 端的桥梁,可以让用户在电脑上对手机进行全面的操作。


借助 adb 工具,我们可以管理设备,还可以进行如安装软件、系统升级、运行 Shell 命令等等操作。如“pull”就是获取设备中的文件,想更多了解 ADB 请自行学习~


find_piece_and_board()

根据图像获取当前小人位置和落点的坐标系(piece_x, piece_y, board_x, board_y),这个是这个脚本中的核心部分。


jump

根据设定的“长按的时间系数”计算需要的按压时间,这个系数是根据手机分辨率推出来的,按压时间设定不小于 200ms,核心命令是 adb 的“input swipe”。


“input swipe”模拟的是手指在屏幕上的滑动事件,如果两个点坐标不变化就成了长按了。


代码中四个变量的设置是:“swipe_x1swipe_y1swipe_x2swipe_y2 = 320,410320410”,所以是模拟的长按,其实滑动也是可以的。

伪造 POST 请求刷分


除了可以用 Python 实现高分,还有网友爆料还可以直接伪造 POST 请求刷分,直接改分数。


昨日,V2EX 网站上一篇题为《微信跳一跳 可以直接更改分数, POST 请求没有校验… 》的文章获得大量曝光,帖中指出微信小程序存在漏洞,跳一跳小游戏可以直接改分数。

用户朱鹏飞根据帖子的指引,发现甚至连微信小程序、小游戏的源代码都可以直接下载,只需要知道 appid 和版本号,就可以直接构造 URL 下载后缀为 wxapkg 的源码包,不需要任何验证。


据微信公众号“小专栏平台”消息,截自 1 月 1 日 23:50,微信官方已经修复了这个漏洞。不过,据说一些老版本的微信还是可以抓包获取包地址。

最后一个,微信已经修复 Bug(部分版本没有修复),但只要利用好前面两个攻略,再配合对节奏的把握,登上朋友圈前几完全不在话下。


话不多说,赶紧去玩吧!!!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304453.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

expsky.php,Typecho漏洞利用工具首发,半分钟完成渗透

原标题:Typecho漏洞利用工具首发,半分钟完成渗透*本文原创作者:expsky,本文属FreeBuf原创奖励计划,未经许可禁止转载声明:本工具由expsky原创,仅用于技术研究,不恰当使用会对网站造成…

游标 和 锁的概述

--用游标 declare str varchar(100) --定义游标 declare DZCursor CURSOR for SELECT test_str FROM test where test_strxxx --打开游标 open DZCursor --从游标取记录 fetch next from DZCursor into str --当有记录 while fetch_status0 begin insert into test (tes…

BeetleX之Web网关1.5.7安装使用

新版的网关主要升级到BeetleX最新版提高http协议的解释性能,从而让网关的吞吐能力进一步提升,在功能界面上也做了简单的调整让操作更方便,修复linux下无权限启动进程问题。如果在windows上不想用IIS,linux下用nginx怕麻烦&#xf…

JAVA world转图片,将Kinect深度图像转换为真实世界坐标

我正在使用kinect,使用OpenNI 2.x,c,OpenCV .我能够获得kinect深度流并获得灰度cv :: Mat . 只是为了说明它是如何定义的:cv::Mat m_depthImage;m_depthImage cvCreateImage(cvSize(640, 480), 8, 1);我想最接近的值用“0”表示&a…

费马大定理,集惊险与武侠于一体

悬案费马大定理从提出到证明的过程,就是一部不折不扣的惊险小说。一个读者,在自己看过的书空白处留下附注。除了他自己,还有谁会关注呢?但是,法国人费马死后,他在一本《算术》书上所写的注记并没有随之湮没…

全国计算机技术与软件专业技术资格(水平)考试基础知识

全国计算机技术与软件专业技术资格(水平)考试基础知识 -------------------------------------------------------------------------------- 1、什么是计算机技术与软件专业技术资格(水平)考试?  计算机技术与软件专…

python中pd series_python-比较pd.Series并在该系列不包含None时获得异常结果

我想知道为什么将两个相同的系列与None值进行比较会返回False:pd.Series([x, y, None]) pd.Series([x, y, None])0 True1 True2 Falsedtype: bool我希望所有结果都是正确的.如果我从系列中创建一个数组,并进行比较,我将得到预期的结果:pd.Series([x, y,…

GPU迎来投资热潮 退潮后谁在裸泳

近期,数家GPU设计公司获得资本青睐,摩尔线程完成数轮投资获得数十亿元,无独有偶,壁仞科技宣布完成总额11亿元的A轮融资,沐曦集成电路宣布完成近亿元天使轮融资,登临科技宣布完成A轮融资。另外,天…

网站底部运行时间的php代码,网站底部运行时间统计代码

也许您和我一样,想在自己站点底部或者任意位置添加一个运行时间统计的代码,对我来说这是一个特殊的日子,值得留恋,值得铭记。在这里我也收集并测试了部分,能有效的显示本站已运行N天,接下来上干货吧。js实现…

All in AI, 一句话看出了百度的野心,也看到了人工智能人才的未来

最近几天,在 2018 CES科技盛会上,百度无人驾驶系统 Apollo 2.0 正式开放,百度COO 陆奇表示,借着 Apollo 平台,他想打造中国无人车国家队!All in AI, 一句话看出了百度的野心。而百度,只是 China…

《Oracle大型数据库在AIX UNIX上的实战详解》的集中答疑九 数据库字符集与国家语言...

陆续收到若干同行来邮件,讨论关于数据库字符集和国家语言字符集之间的关系。这里我提出自己的看法。本文后面的内容部分来自网上关于Sybase ASE的一篇技术文摘,但下载日久,难分谁之作品,这里借用一下,如果正好是您的&a…

知名Node.js组件存在代码注入漏洞

喜欢就关注我们吧!日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞。该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm 组件的安全性,该组件每周的下载量约为 80 万次,自诞生以来…

php判断子字符串位置,PHP怎样查询子字符串位置

字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的。字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s“a1a2an”(n>0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串…

icd11中文版精神障碍pdf_精神与行为障碍类别目录(ICD-11)

精神与行为障碍类别目录(ICD-11)神经发育障碍(7A00-7A43)7A00智力发育障碍,轻度7A01智力发育障碍,中度7A02智力发育障碍,重度7A03智力发育障碍,极重度7A04智力发育障碍,一过性7A0Z智力发育障碍,未特定7A10语…

VPC2007差分硬盘让小硬盘也能跑多个虚拟机

在Winos中看到http://bbs.winos.cn/thread-43391-1-1.html于 2008-9-2 16:02 发表基于Vmware Workstation 让你的小硬盘也能跑多个虚拟机个人认为有些做得不是很人性化。比如说我要把虚拟机母板封装好之后要修改为只读,而且还要隐藏起来。那么我再要创建虚拟机就要…

2017新生儿爆款名字出炉!90后的父母们最受欢迎的居然是.....

名字跟随一生因此很多家长在给孩子起名字的时候都相当谨慎除了日常迷信外不重名成为取名的重要考虑因素学校走廊里喊一声“子涵”,竟有3人回头!!你知道你家孩子的名字和多少人重名了吗?近日,江苏苏州一家科技公司发布《…

Kubernetes中分布式存储Rook-Ceph的使用:一个ASP.NET Core MVC的案例

在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程,这里介绍如何在部署于Kubernetes的ASP.NET Core MVC的应用程序中使用Rook-Ceph所创建的存储对象。构建ASP.NET Core MVC (.NET 5)应用…

php super和parent,parent()、parents()的用法区别

parent():所有匹配元素的父元素的组合parents():所有匹配元素的祖先元素(包括父元素)的组合关键代码如下:第1层DIV第2层DIV第3层DIVbbb$(function(){$("input[typebutton]").click(function(){$("div >b").parent("div"…

android 开启一个定时线程_Android 定时任务刷新的多种实现方式

1.采用Handle与线程的sleep(long)方法1) 定义一个Handler类,用于处理接受到的Message。Handler handler new Handler() {public void handleMessage(Message msg) {// 要做的事情super.handleMessage(msg);}};2) 新建一个实现Runnable接口的线程类,如下…

系统安全防护之UNIX下***检测方法

因为UNIX系统经常承当着关键任务,所以它经常是***者***的首选目标。于是检测***、保护系统安全是管理员的最为重要的任务之一。那么,在没有其它工具帮助的情况下,如何去判断系统当前的安全性?如何去发现***呢?下面给大家介绍一些常…