python 4399别踩白块儿脚本
持续无聊中,看到别踩白块儿觉得这个脚本貌似比较好写。
需要用到的python 库如下
import pyautogui
from PIL import ImageGrab, Image
import win32gui,win32api,win32con
打开4399,选一个别踩白块的小游戏,点击全屏固定屏幕,按下F12获取该窗口的标题
由于我用谷歌浏览器,所以titile = u"别再踩白块了_别再踩白块了html5游戏在线玩_4399h5游戏-4399在线玩 - Google Chrome"
随便选一个模式,进去后是这样的:
只要我们点击一下黑块,上面一行就会下来,所以我们只要追踪倒数第二行就行,一直判断倒数第二行到底点击第几个方块。
利用picpick软件获取倒数第二行的位置信息,将其截取成图片
截取图片之后还要对图片进行二值化处理,方便统计,如下所示:
接着上面截取的图片做4次像素遍历统计,这里我们不用将图片分成4块,只需要在特定位置截取4个20*20的矩形,判断这4个矩形中谁的黑色像素占比最大,谁就是黑块,当然我们也可以把尺寸截取小一点10*10, 5*5都行,目的只是为了快速计算,毕竟这里面有一个模式是速度逐渐增大的,所以哈哈,为了破纪录不择手段。如下所示
知道第几个方块是黑块就用鼠标点击那个位置就好了!
传入一个runNum参数,控制程序执行次数,由于追求速度,就没用time.sleep()函数
完整代码如下,很短欸,60多行:
import pyautogui
from PIL import ImageGrab, Image
import win32gui,win32api,win32con
import cv2
import numpy
import timepyautogui.FAILSAFE = Falseclass 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 = 0for 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 += 1scoreList.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)passif __name__ == "__main__":winName = u"别再踩白块了_别再踩白块了html5游戏在线玩_4399h5游戏-4399在线玩 - Google Chrome"demo = GameAssist(winName)demo.master(100)
以前4399给我带来很多乐趣,现在依旧哈哈,gif图演示,超级模糊
python 4399别踩白块儿脚本相关推荐
- python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)
python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接
- Java“别踩白方块”脚本
Java"别踩白方块"脚本代码 1 基本函数 使用awt包的Robot类,来完成获取像素点颜色,模拟按键,模拟鼠标等等. import java.awt.*; public cla ...
- Cocos别踩白块儿案列1
Cocos 版本3.10 1.游戏介绍: <别踩白块儿>是由 Umoni Studio (Umoni Entertainment Limited 的前身)"制作的一款休闲益智游 ...
- 别踩白块儿 开源免费(C++)
别踩白块儿(C++) 演示视频 调用EasyX图形库,电脑没有安装图形库的话,无法运行 EasyX下载 源码下载 //主要代码,源码请下载源码文件//游戏开始 void Begin() {MOUSEM ...
- 团队项目代码分析(Android游戏:别踩白块儿)
代码组成部分: 关键代码主要分为三大部分,如下图所示(用思维导图的形式展示): 代码调用关系 通过MainActivity调用其他类❤,具体见核心代码分析! 核心代码分析 public class P ...
- 基于Linux、QT、C++的“别踩白块儿”小游戏
基于Linux.QT.C++的"别踩白块儿"小游戏 源码链接 一.功能实现 完善的游戏界面.游戏倒计时.得分记录.历史最高分显示 二.功能描述 1.界面为4*4,一行中只有一个黑块 ...
- QT 小游戏 : 别踩白块儿~
一.实现思路 QPainter 绘制 游戏界面 PS:根据方块坐标链表绘制所有方块 支持两种操作方式 PS:鼠标事件 和 键盘事件(Q,W,E,R,T) 定时器(10ms) 刷新 方块坐标数据 根据得 ...
- 初学JS——利用JS制作的别踩白块儿(街机模式) 小游戏
初学JS--利用JS制作的别踩白块儿(街机模式) 小游戏 这个是上个星期5写的了,当时是突然想写个游戏,就想到了别踩白块儿,当时的想法是 可能普通模式的别踩白块儿因为他的"块儿"是 ...
- 傅小森的游戏制作之路-别踩白块儿
项目前言 别踩白块儿 这- 还用开发吗? 别人已经制作了呀 触屏版本多的是 是挺多的 但是 你见过按键版本的嘛? 没见过吧 这就是需要开发出来 , 进入项目需求环节 项目需求 别踩白块儿 顾名思义:不 ...
最新文章
- VirtualBox下安装rhel5.5 linux系统
- 负载均衡(Load Balancing)学习笔记(二)
- 一年后斩获腾讯T3,层层深入
- winform利用委托传值到datagridview_C# Winform 跨多级窗体/控件传值
- mergesort_Mergesort算法的功能方法
- Python | threading01 - 创建两个同时运行的子线程
- C# HashSet 实例
- 空号检测、号码状态查询接口免费测试、精准实时版(支持携号转网查询)
- 愉快的在vscode上刷leetcode
- MATLAB中.m文件命名规则
- 高等工程数学(一):线性空间
- 语速对科大讯飞,百度,思必驰,云知声的语音引擎识别结果影响对比
- 百度信誉保障服务架构全解析
- 「转录组」WGCNA实战原理两不误
- 阿里巴巴的东南亚战事:另一次拼多多式的奇袭
- 《历》·陕西帝王陵寝一览
- 微服务构建思路与方法论
- 深度学习01——入门基础 基于Python
- PMOS与NMOS的区别
- Java实现的小根堆
热门文章
- async/await 中的 try/catch
- linux和windows双系统互拷文件乱码问题,linux和windows双系统互拷文件乱码问题
- Xshell修改用户名字体颜色
- java中如何定义一个_java中如何定义一个方法
- 遵循gpl协议 采用jar包_采用GPL协议的程序,可以免费应用于商业用途吗?
- jQuery中如何判断checkbox是否被选中
- Mac版酷狗在线播放器
- python时间序列分析按月_利用 Python 进行时间序列分析
- 造车不是打群架,有没有“势力”不重要,有“实力”才是关键
- 电子工程师自学成才pdf_作为一名自学成才的软件工程师,我在第一个月的工作中所学到的知识