每次在部落冲突搜索对手,都要花上不少时间。尤其是在发展中期的时候,特别难搜索到肥猪。像我本身的十本大号,在十本中期发展。前期还好,搜到的基本上是十本初的死鱼,随随便便就是五六十万。后来把兵营什么的升级上来,杯一冲到大师杯后,搜索到的基本上是各种十几万,打一把亏一把。搜个几十分钟都不一定碰到一个肥的。作为一个时间就是生命的码农,这肯定是难以接受的,所以就抽空写了这个脚本。
思路
首先要保证的一点是:一定不能封号。好不容易玩了两年发展到十本,封号了岂不是凉凉?所以从原理上,坚决不能读取内存数据。读内存数据相当容易翻车。
所以只能另辟蹊径,走文字识别这条路。原理大概是:
获取游戏中的截图
模拟点击进行搜索对手
图像识别对手的资源
判断资源,发现肥猪提醒
平台选择
由于获取截图需要一定的系统权限,因此平台只能选定安卓平台。在安卓平台下允许使用adb命令连接Android系统截图,并将截图发送到Mac或Windows上来,进行其他的逻辑判断。
截图获取
获取截图可以使用安卓的虚拟机、模拟器,在Windows和Mac下均有相应的Android虚拟机。但如果使用模拟器运行部落冲突,意味着搜索到对手也必须在模拟器下发动进攻。而模拟器下对多指操控很不友好。而且模拟器运行占用资源也会比较大,毕竟码农,还是不希望电脑卡顿的,因此最后选定使用实体机来跑。
好在我有一个闲置下来的小米5,因此可以通过获取小米5的截图,来判断对手资源,发现合适的肥猪再进行提醒。这样也能在手机上操控,最大限度保证能够榨干肥猪。
前期准备
Python
首先你得有一个Python,毕竟这是一个Python脚本。同时还要选择一个好的IDE,这里我选择的是Pycharm。这样在写代码的时候能够省下不少功夫。
Python和Pycharm的安装我就不啰嗦了,百度上一大把。需要注意的是Python最好选择Python3版本,这里我选择的是Python3.6版本,2.7版本在库和语法上与3.6略有不同。
pip
因为需要使用一些Python库,使用pip的安装必不可少。同理,百度一大把。不过安装完成后记得换为国内源,这样下载速度会快很多很多。
传送门
注册百度的AI文字识别服务
注册完成后开通相应的服务,拿到AppID、API Key和Secret Key就行。后续需要使用到百度的文字识别服务来识别资源。
_apikey_1530979649_2147066274.png
图形处理库Pillow
获取到的屏幕截图还包含有其他文字,这些文字不是所需要的,所以需要使用图形处理库将资源数据裁剪出来,再通过文字识别转换为数字,这样大大提高了识别的精度和效率。
pip install Pillow
我在Mac下安装提示各种缺失,根据缺失将缺失的模块(MySQL-python)补上即可。
_图片中还含有其他文字_1531030593_729756971.png
安卓手机
理论上只要是安卓手机基本都OK,版本在4.4以上的、能够启用开发者选项的就行。因为adb工具需要使用开发者选项来操控手机,所以需要启动开发者选项。不同手机有不同启用方法,具体就不详细赘述了,百度手机型号+启用开发者选项基本都能够搜索到。启用开发者选项后,在开发者选项中启用USB调试即可。
注意:开启前务必关闭关闭(最好卸载)360、毒霸等各种国产安卓软件,关闭其他不必要的优化软件,否则这些软件有权限在你手机上乱搞,比如安装各种乱七八糟的软件,所以开启前务必关闭!!!
_启用usb调试_1531044449_422037486.png
adb工具环境配置
检测adb环境是否配置完毕
在Mac的终端或Windows的命令提示符下输入
adb --version
如果能过显示相应的adb版本号,如
Android Debug Bridge version 1.0.40
Version 4797878
Installed as /Users/zinc/Library/Android/sdk/platform-tools/adb
则说明adb环境已经配置完毕。否则需要配置环境
Windows系统下比较方便,百度adb工具箱下载即可,大小10mb左右,再根据教程配置adb环境即可
Windows下的adb环境配置
Mac下的adb环境配置
在Mac下的配置相对比较麻烦,我个人倾向于安装Androi