Skip to content

CivilNet/AntFarm

Repository files navigation

AntFarm

这个程序用来在支付宝App里养鸡和种树。目前只支持Android手机。不支持iOS的原因在于AntFarm程序基于ADB。 关于该程序的更多背景,请访问:https://zhuanlan.zhihu.com/p/35940345

功能

  • 蚂蚁庄园中自动喂粮食,并能够自动驱赶偷吃的鸡;
  • 巡视好友的蚂蚁庄园是否有来偷吃粮食的,提醒并获得相应的奖励;
  • 蚂蚁森林中摘好友的能量,并帮助好友收取快要失效的能量;
  • 蚂蚁森林中早上7点到7点半不断的摘取好友的能量。

如何使用

  • AntFarm程序需要运行在个人电脑上,然后使用USB线缆将你的Android手机连接到个人电脑上,手机端要打开USB调试模式,并且调整usb连接方式为MTP,打开支付宝App并调整蚂蚁森林和蚂蚁庄园的图标在首页上展示;
  • AntFarm程序使用Python构建,所以你的个人电脑可以是Linux、Windows、Mac操作系统。使用该命令克隆代码到个人电脑上: git clone https://github.com/CivilNet/AntFarm
  • 在个人电脑上配置ADB和OpenCV依赖(参考下节);
  • 使用下面的命令开始养鸡种树:python ant.py 。这将会使用default模式来开始养鸡种树;
  • AntFarm支持4种模式(使用--mode指定):farm,forest,default,all

4种模式

default模式

这种模式下,AntFarm在启动的时候会去检查蚂蚁庄园和蚂蚁森林,然后在7:00AM ~ 7:35AM之间会不断检查蚂蚁森林,其它时间都在蚂蚁庄园:python ant.py 或者 python ant.py --mode default

farm模式

这种模式下,AntFarm只负责养鸡:python ant.py --mode farm

forest模式

这种模式下,AntFarm只负责种树:python ant.py --mode forest

all模式

这种模式下,AntFarm在启动的时候会去检查蚂蚁庄园和蚂蚁森林,然后在整点的时候会检查蚂蚁森林,其它时间都在检查蚂蚁庄园:python ant.py --mode all。 这种模式也是Gemfield最常用的模式。

模板

因为使用的是opencv的template模板匹配算法,因此需要为不同的手机定制不同的模板icons。目前该项目已经注册了如下型号的模板:

  • 魅族魅蓝Max(默认);
  • 三星Galaxy s6 edge+;

使用-template参数来指定要使用的模板,比如要使用s6 edge plus手机,则使用命令: python ant.py --mode all --template s6edgeplus

由于魅蓝Max为默认设备,因此 python ant.py --mode all 等价于 python ant.py --mode all --template meizumax

当然你可以制作自己的模板。

如何在个人电脑上配置ADB

Linux

  • 安装adb:sudo apt install adb
  • 安装OpenCV依赖:pip install opencv_python

Windows

macOS

同Linux、Windows,安装adb、python等必备依赖。已经在macOS上测试过。

已知问题

  • 只在1080p分辨率的手机上进行测试过,其他分辨率的手机可能需要调整对应的置信度,或者重新注册一套icon模板;
  • 识别蚂蚁森林可收取能量球的正确率大约为97%,离100%当然还有提升空间。不过Gemfield没有过多的时间来研究和试验,目前为止还没有找到优雅的轻量级(不使用深度学习框架)算法,谁能找到轻量级的优雅的100%正确率算法,发100块钱红包;
  • 支付宝的蚂蚁森林或者蚂蚁庄园的界面在载入时,有时会出现预期之外的弹窗(如节日广告推送),可能会导致程序逻辑线混乱(说'可能'是因为AntFarm本身还是健壮的,能应付一些错误);
  • 基于adb的原理使得程序运行依赖个人电脑,不够灵活,谁能改变这个现状,发100块钱红包;
  • 手机不能息屏,程序运行费电,不够环保,深感内疚,谁最先能解决这个问题,发100块钱红包;
  • 目前没有在Linux或Windows PC上支持iPhone的轻量级(至少达到adb水平)的优雅的解决方案,谁能解决这个问题,发100块钱红包。
  • 不使用神经网络模型的情况下,如何使得一套模板icons适用几乎所有安卓型号手机;