持续无聊中,看到别踩白块儿觉得这个脚本貌似比较好写。 需要用到的python 库如下 打开4399,选一个别踩白块的小游戏,点击全屏固定屏幕,按下F12获取该窗口的标题 由于我用谷歌浏览器,所以titile = u”别再踩白块了_别再踩白块了html5游戏在线玩_4399h5游戏-4399在线玩 – Google Chrome” 随便选一个模式,进去后是这样的: 只要我们点击一下黑块,上面一行就会下来,所以我们只要追踪倒数第二行就行,一直判断倒数第二行到底点击第几个方块。 利用picpick软件获取倒数第二行的位置信息,将其截取成图片 截取图片之后还要对图片进行二值化处理,方便统计,如下所示: 接着上面截取的图片做4次像素遍历统计,这里我们不用将图片分成4块,只需要在特定位置截取4个20*20的矩形,判断这4个矩形中谁的黑色像素占比最大,谁就是黑块,当然我们也可以把尺寸截取小一点10*10, 5*5都行,目的只是为了快速计算,毕竟这里面有一个模式是速度逐渐增大的,所以哈哈,为了破纪录不择手段。如下所示 知道第几个方块是黑块就用鼠标点击那个位置就好了! 传入一个runNum参数,控制程序执行次数,由于追求速度,就没用time.sleep()函数 完整代码如下,很短欸,60多行: 以前4399给我带来很多乐趣,现在依旧哈哈,gif图演示,超级模糊
import pyautogui from PIL import ImageGrab, Image import win32gui,win32api,win32con
import pyautogui from PIL import ImageGrab, Image import win32gui,win32api,win32con import cv2 import numpy import time pyautogui.FAILSAFE = False class GameAssist: # 初始化 def __init__(self, winName): self.handwin = win32gui.FindWindow(0, winName) if not self.handwin: print("无法找到窗口") exit() # 放置最前 win32gui.SetForegroundWindow(self.handwin) # 截取的四个块位置 self.fourRect = (523, 474, 843, 583) # 从哪里开始统计黑色像素,相对坐标 self.localFourPos = ((20, 20), (100, 20), (180, 20), (260, 20)) # 每个统计尺寸(宽、高) self.localSize = (20, 20) # 根据图片判断按那个方块 def img2ans(self, img): # 二值化 img = img.convert('1') # 四个方块黑色占比 scoreList = [] # 分别遍历四个区域 for idex in range(4): # 黑色像素占比 blackScore = 0 for i in range(self.localFourPos[idex][1], self.localFourPos[idex][1] + self.localSize[1]): for j in range(self.localFourPos[idex][0], self.localFourPos[idex][0] + self.localSize[0]): if img.getpixel((j, i)) == 0: blackScore += 1 scoreList.append(blackScore) # 返回最大值的下标 return scoreList.index(max(scoreList)) # 主控制程序,runNum 执行次数 def master(self, runNum): for num in range(runNum): blockImg = ImageGrab.grab(self.fourRect) ans = self.img2ans(blockImg) #pyautogui.click(x=self.fourRect[0] + self.localFourPos[ans][0], # y=self.fourRect[1] + self.localFourPos[ans][1]) pyautogui.click(x=self.fourRect[0] + self.localFourPos[ans][0], y=self.fourRect[1] + self.localFourPos[ans][1] + 60) #time.sleep(0.1) pass if __name__ == "__main__": winName = u"别再踩白块了_别再踩白块了html5游戏在线玩_4399h5游戏-4399在线玩 - Google Chrome" demo = GameAssist(winName) demo.master(100)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算