最近在线直播答题分奖金的活动真的越来越多了,在我看来,这种活动不过是各大APP争夺用户的手段而已,就和支付宝扫红包一样。
那么我们用户想要顺利的多撸羊毛,首先你如果知识丰富,才高八斗的话那就不用看了,直接退出吧。如果不是,那就一起来看一下怎么方便的撸羊毛。
在github上看到一个开源项目,是用java写的答题类软件辅助]标签的文章】" target="_blank">辅助工具,本着学习的态度想看一下作者的制作思路(绝不是想要去撸羊毛啊),于是fork到自己的仓库,git clone到本地仓库后就开始查看源代码了。
github仓库项目
作者的很多编码习惯真的是值得学习的,首先从目录结构来看
hero目录结构
从图中一眼就能看出这个项目的层次以及编码风格,这是一个接口工厂模式,分为OCR图片文字解析工厂、题目查询工厂、应用类型答题分析工厂、以及工具类和一个主入口类。
答题步骤分为
使用adb工具连接手机发送截图命令,获取截图上传到计算机。
通过OCR图片文字解析工具解析出问题以及选项。
将问题及对应的答案组合通过百度查询得到百度返回的html页面。
检索LOL辅助并提取出相关结果数量。–如下图红框中标记所示
比对所有答案,得出相关结果数最高的答案。
返回最终结果。
百度相关结果数
这种方式并不能100%的得出正确答案,只能作为解题的参考答案,但是作为程序猿程序猿的我看重的确是解题思路。
下面就让我们来看一下核心代码吧
https://github.com/Papio0112/MillionHero这是项目源码,我直接从原作者那里fork过来的,你们也可以直接fork到自己的库中。
首先是获取手机截图并上传到计算机磁盘
头条不能插入代码片段所以用截图代替了。
获取截图函数
想要运行这段代码,首先需要测试你的adb工具是否成功连接到你的手机。方法另行查阅。
然后就是OCR解析截图
OCR解析类
这里作者提供了两种OCR解析工具,分别是百度图片OCR和TessOCE,选择通过OCRFactory工厂类选择即可,默认为TessOCE。
百度搜索关键字
百度搜索关键字
BaiDuSearch类实现了Search接口,而Search接口又是继承的Callable类,所以这里BaiDuSearch是一个多线程类,使用多线程可以确保快速返回答案。
最后就是答题了
答题代码太吃鸡免费外挂长了,我就不截图了,自己clone下来看吧,也是使用的工厂模式,可以自己添加更多的答题APP适配。
总之学习无处不在,在这个项目中主要是学习工厂模式的应用。写的不在重点,望海涵。