跳一跳的python源码(跳一跳python脚本)
本文目录一览:
- 1、1、 创建一个python的文件,运行后,文字版方式模拟微信游戏“跳一跳?
- 2、python写跳一跳有多难
- 3、关于Python玩“跳一跳” iOS+Win 硬件实现的介绍?
- 4、Python源码是什么意思?
1、 创建一个python的文件,运行后,文字版方式模拟微信游戏“跳一跳?
文字怎么模拟?你怎么模拟鼠标按下去的时间啊?
只能用GUI,文字的话Python无法识别鼠标按下,GUI才行。
您仔细说一下您的思路和想法,可以为您写代码
python写跳一跳有多难
不难哦
下载第三方库通过连接usb实现捕获屏幕和模拟点击的功能(安卓的adb库,苹果无能为力哦)
再实现对内容的分析功能,即程序找出方框的中心点(方框对角线交点,圆形外切矩形对角线交点)
然后在实现模拟点击,注意延迟要反复调试,直到保证每一次都能落到中心点上就大功告成了哦
关于Python玩“跳一跳” iOS+Win 硬件实现的介绍?
原项目地址:wangshub/wechat_jump_game
教你用Python来玩微信跳一跳
本项目源码:yangyiLTS/wechat_jump_game_iOS
目前已有的iOS跳一跳辅助需要macOS环境下的WebDriverAgentRunner。而现在介绍的方法在Windows环境下物理实现,不需要macOS也不需要越狱。
先上效果
运行环境工具
Python 3.6 in Windows
Python Pillow库
局域网环境
iToools Airplayer
树莓派或arduino (本文使用树莓派)
SG90 舵机
杜邦线、纸板
一小块海绵
橙子或其它多汁水果(可选)
基本思路使用iOS自带Airplay服务将游戏画面投影到电脑上。使用Pillow库截取电脑屏幕,获得游戏画面。分析图片,计算出跳跃距离,乘以时间系数获得按压时间。将按压时间发送至树莓派,树莓派控制舵机点击手机屏幕。原理步骤
舵机 控制器部分
树莓派(OS:Raspbian Jessie)连接上局域网,下载servo_control.py到树莓派。拿一根杜邦线粘在舵机的摆臂上,并且固定好舵机在纸板上,如图:
取一小块海绵,约10mm*10mm*5mm,不必太精确。海绵中间挖一个小洞。大概是这样:
海绵上滴水浸透,放在手机屏幕上“再来一次”的位置。杜邦线的另一头插进橙子。(触发电容屏需要在屏幕上形成一个电场,我尝试过连接干电池负极的方案,但是效果不理想,最后不得已拿了室友的一个橙子。当然,一直捏着或者含着导线也是可以的。)
舵机连接上树莓派,电源使用5v(Pin #04,Pin #06),舵机控制线接在GPIO18(Pin #12)。
需要根据实际安装位置调整舵机高点和低点位置(范围: 2.5~12.5)
servo_down = 3.8 servo_up = 5
最终效果
Windows 部分
下载Airplayer(免安装,暂无捆绑)
配置Airplayer,画质什么的统统调到最高。启动iPhone上的Airplay,然后可以在电脑上看到iPhone画面,游戏运行时需要Airplayer全屏显示。
安装Pillow库,本文使用Pillow库的ImageGrab截屏,截屏代码:
im = ImageGrab.grab((654, 0, 1264, 1080)) im.save('a.png', 'png')
下载wechat_jump_auto_iOS_Win.py,我的显示器分辨率是1920*1080,手机是iPhone7。如果使用不同的设备需要更改时间系数等参数。
由于Airplay传输画面时会压缩,获取的游戏画面会有颜色偏差。我修改了原算法的一些参数,增大了颜色上的宽容度,在测试中已经达到一个比较好的准确率。
wechat_jump_auto_iOS_Win.py 计算出跳跃距离后,会调用socket库把跳跃时间发送到树莓派上,其中ip地址需要修改为实际树莓派的ip地址。
ip_addr = 'rasp_ip'
运行打开游戏画面,Airplayer窗口全屏树莓派上运行servo_control.py ,监听9999端口,等待Win的计算结果Windows运行wechat_jump_auto_iOS_Win.py海绵放在“再来一次”的位置可以自动重新开始,然后就会一直自动刷分问题其它
由于是物理点击屏幕,会产生一定的操作误差。操作误差由时间常数误差、舵机运动时间、杜邦线触点插进海绵的深度等等因素引起。而当前使用的算法在一种情况下会出现误差叠加的问题。
Z形路径误差累积过程
舵机的摆动角度和时间系数没有绝对的数值,需要慢慢尝试,当前使用的时间系数是2.43。
可以使用arduino + pyfirmata组合控制舵机,成本比较低,不需要网络传输计算结果。因为我的arduino前些天送给了女票,所以还没有使用arduino的方案。
这个游戏在跳了200+次之后方块会变的非常小(如题图),已经不是普通人类所能做到的。研究了外挂之后才知道手玩高分有多难,大家还是不要刷分了,会没朋友的。
Python源码是什么意思?
源代码是指原始代码,可以是任何语言代码。Python源码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的“语言”。