使用pyhton+adb实现自动公主连结闯关

这里介绍如何使用pyhton+adb实现自动公主连结闯关

此教程需要安装python和adb,相关知识请百度搜索
python环境一般电脑自带
这里是adb安装教程

一.用usb链接自己的手机

1.打开cmd
2.输入 adb devices
出现此为链接正常
出现以上为链接正常

二.运行代码

1.打开python环境

如果没有接触过python的小伙伴可以在电脑搜索栏输入idle,然后ctrl+n新建

2.粘贴以下代码

这是公主连结第三章的代码

(1)主函数部分

import os
from PIL import Image
import time
import random
import tk_part

delay=int(tk_part.delay)
chap=int(tk_part.chap)
space=int(tk_part.space)
next_chap=2288,540
next_space=2145,495
s=1909,911  #挑战和战斗开始坐标
t=1917,977  #结束后下一步坐标 
frist_space={1:(470,541),2:(511,801),3:(513,365),4:(641,453)} #这里储存每一章第一关的坐标,因为我没有过第五章,所以只记录了前面四章
num=0

# x=[100,513,629,813,1057,1021,1229,1333,1493,1605,1593,1877,1937]
# y=[100,365,601,453,469,685,793,561,397,533,749,709,437]
def start():
    os.system('adb shell am start -n com.bilibili.priconne/com.bilibili.princonne.permission.PermissionActivity')
    time.sleep(10)

def remove(a,b,c,d):
    os.system('adb shell input swipe {} {} {} {}'.format(a,b,c,d))

def touch(x):
    os.system('adb shell input tap {} {}'.format(x[0],x[1]))
    time.sleep(0.7)

def evertouch(): #防止出现事件导致程序运行错误,设置屏幕一直点击
    for i in range(0,delay):
        if i%2:
            os.system('adb shell input tap 1185 597')
        else:
            os.system('adb shell input tap 2287 200')
        time.sleep(0.5)

def begin():
    global num
    # global chap
    # global space
    print("正在进行")
    if not(num==0): 
        touch(frist_space[chap])
        for i in range(1,num+space):
            touch(next_space)
    touch(s)
    touch(s)
    evertouch()
    touch(t)
    time.sleep(4)
    touch(t)
    for c in range(0,3):#加上这段就可以避免因为好感度打成导致程序错误
        touch((1310,61))
    remove(800,529,1397,529)#划到初始位置
    time.sleep(4)
    print("{}-{}完成".format(chap,num+space))
    num=num+1
    begin()

def main():
    for d in range(1,chap):
        touch(next_chap)
        time.sleep(0.7)
    if chap>=4:
        remove(800,529,1397,529)#划到初始位置
    touch(frist_space[chap])
    for h in range(1,space):
        touch(next_space)
    begin()

if __name__ == "__main__":
    main()


2.tk部分

import os 
import tkinter as tk
from scrapy import cmdline

# class tk_part1():
#     def __init__(self):
#         self.delay
#         self.space
#         self.chap
def get_delay():
    if enter1.get()!='':
        global delay
        delay=enter1.get()
    if enter2.get()!='':
        global chap
        chap=enter2.get()
    if enter3.get()!='':
        global space
        space=enter3.get()
    print("延迟:{};开始章节为{}-{}".format(delay,chap,space))
    print("关闭窗口程序即将开始。。。。。")
# def get_vars2():
#     if enter2.get()!='':
#         global var2
#         var2=enter2.get()
# def main():
text=tk.Tk()
text.wm_attributes('-topmost',1)
text.geometry('440x100')
lab1=tk.Label(text,text='请输入每一关的预计要进行的时间   :').grid(row=0)
lab2=tk.Label(text,text='请输入从哪一关开始   : ').grid(row=1)
lab3=tk.Label(text,text='-').grid(row=1,column=2)
enter1=tk.Entry(text,width='5')
enter1.grid(row=0,column=1)
enter2=tk.Entry(text,width='5')
enter2.grid(row=1,column=1)
enter3=tk.Entry(text,width='5')
enter3.grid(row=1,column=3)
bt1=tk.Button(text,text='保存',command=get_delay).grid(row=3,column=4,ipadx=1)
lab2=tk.Label(text,text='请点击保存后关闭窗口,程序将开始运行').grid(row=3,column=0,ipadx=1)
text.mainloop()
# print("延迟:{};开始章节为{}-{}".format(delay,chap,space))

# if __name__ == "__main__":
#     main()

在这里插入图片描述在这里插入图片描述

如果想深入了解的小伙伴们课以在百度搜相关教程

因为每一章,每一关的位置不同,所以在完成一章后要重新输入每一关的坐标,本教程只提供了思路,需要小伙伴们自己去完成
已更新

这是程序运行的tk


链接:https://pan.baidu.com/s/12FqQpINpHd6C4Dxq5Yce8Q
提取码:x6it
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值