查看: 88|回复: 0

暗黑不朽钓鱼机器人开发经验

[复制链接]

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-4-26 17:49:19 | 显示全部楼层 |阅读模式
最近遭遇中年失业,总得想点办法整些自己感兴趣又能带来收入的事情。所以就从自己一直筹备的游戏自动化机器人入手。因为长期工作积累了大量工具,本身就存在较高的技术壁垒,所以只要根据指定游戏场景开发对应的业务逻辑即可。这里列举一些关键步骤及踩坑思路:
1.夜神模拟器各功能验证,将手机游戏跑在pc上,从而和自己的桌面端流程引擎及视觉自动化工具打通。
2.官方的app无法找到自己手机上的角色,才发现自己玩的是渠道服,于是需要设置模拟器的手机品牌型号啥的,再下载对应厂商的应用市场软件,再下载对应渠道的游戏app,小坑。
3.配置自动化钓鱼流程,制定各模块分功配置,确定缺少的模块功能及对应的输入输出。
4.未开发的模块单独配置,准备相应的数据,顺便优化自己的工具软件的好用性,优化c#界面自动化库的各种细节崩溃问题,以方便开发调试单个模块。
5.算法踩坑:
算法一:通过主功能键花纹判断当前状态。状态分为三种:钓鱼时没上钩,钓鱼时上钩以及没钓鱼。
1)通过深度学习来判断种类,用户机不一定有不错的显卡,而且训练过程和数据采集标注也太花时间,故选择人工提取特征找合适流程。
2)通过花纹样式做模板匹配的思路也要被排除,因为如果模拟器的窗口缩放后或者用户屏幕分辨率发生变化后,此类算法必定受到图像质量的干扰而产生各种数值问题导致判断结果错误。
3)通过色调来判断状态,使算法具有不依赖几何尺寸的泛化性,并且每个职业都有自己的主题颜色且恰好和钓鱼状态能区分。先走三角坐标转二维坐标(放弃),再走色域图(放弃),最后选择一种适合色调分析的hsv颜色空间,走opencv的函数。
4)对hsv空间的第一个分量求直方图,需要进行分类。0类,1类,2类分别对应以上三种状态。分类算法选用k-means(放弃),又考虑lda(放弃),最后自己写。
5)最近一道回文字符串的面试题没答上,其中心扩散的解题思路正好能用在这个项目的直方图分析算法里。但还需要判断出肉眼可见的“簇”的特征,借鉴二维图像处理的非极大抑制,对一维直方图采取同样的分析,设定二个阈值参数(单根阈值与累积阈值),最终搞定此问题。
算法二:通过钓鱼状态条判断当前状态:力度合适,力度不够,力度过大。
1)灰色,蓝色,金色的鱼会显示不同颜色的状态条。故算法必须具有不依赖颜色的特性。根据颜色对算法分类处理可能受到用户屏幕的设置干扰而导致算法失败。
2)像算法一一样做hsv变换,效果不理想。三通道的和或平均像素作为新图片像素进行分析,特征强烈的通道可能被特征不强烈的通道抵消特征。故直接转灰度图分析。
3)分析一维水平直方图,发现梯度变化剧烈的地方可以用于判断三个金属条的位置。故计算水平梯度直方图,观察特征。由于此问题的聚类分析与问题一的侧重点不同,已经明确知道3类,并要估算每一个中心的半径,以便于后续确定三个金属环中玩家控制的那个。使用k-means,源码找chatgpt要,发现初值选取影响计算结果。改用一维snn,自底向上聚类,效果不错。
4)分析三通道去掉三个金属条位置的最大梯度位置,判断三个金属条中玩家控制的那个。确定钓鱼状态,此题基本解决。
6.算法集成进配置流程,根据实际运行情况调整部分模块参数,跑通全流程。发现前面的二个算法模型的问题建模存在缺陷,如果深入优化算法建模会耗时较久,个人精力资源不允许。故优化整体流程,增强流程健壮性,允许算法存在一定程度的缺陷,并能保证整个流程的最终可用性。
7.单机循环测试验证,其他机器测试验证。
无限自动钓鱼机器人核心功能就此告一段落,至少自己可以用的上。剩下部署优化,变现模式及推广渠道等其他产品化工作。从而跑通最基本商业模式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表