【微信小程序跳一跳】尝试用github开源机器学习玩跳一跳小游戏步骤

玩游戏最好还是别用机器,不然还有啥意思?
本文主要是作为机器学习小白,想亲自动手实践一把,感受一下机器学习的魅力。

0、首先去github阅读源码readme等信息

目标就是可以运行下面这个即可

强烈推荐下载预训练好的模型(参考后面给出的链接)并且运行下面的代码
python nn_play.py --phone Android --sensitivity 2.045

1、其次根据readme中的信息,在本地搭建依赖的相关环境

鉴于源码是python3环境+机器学习+CNN等,windows推荐安装anaconda3,然后安装各种依赖即可(此处略,请自行安装)
环境依赖:
- Python
- Opencv3
- Tensorflow

2、再次环境搭好后去github下载源码(包含readme中提到的需要下载的压缩包)到本地

windows建议安装git bash。这样方便直接从github上下载源码。(但是每次下载都得输入github账号和密码,太麻烦。可以设置免密下载的,详细请自行百度即可)


  • 源码下完后,如下图(其中标红的部分为后来添加的)
    这里写图片描述
  • 然后参考 readme中提到的需要下载的压缩包

压缩包在哪?即“强烈推荐下载预训练好的模型(参考后面给出的链接)并且运行下面的代码”这句中提到的后面给出的链接。即下面的链接。
训好的模型以及训练数据
训练好的CNN模型和训练数据可以从下面的链接下载
Baidu Drive
Google Drive
如果你想从头自己训练: 下载好数据到任意目录下,然后修改cnn_coarse_to_fine/data_provider目录下所有文件的self.data_dir路径。
如果你只想跑一下我们的模型: 下载好train log文件(包括train_logs_coarse and train_logs_fine)并解压到resource目录。
如下图1:两个都要下载,并解压到之前下载的源码跟目录下(如下图2)。
图1-下载
图1
图2-解压
图2(其中data直接解压到根目录即可–无需做什么改动,trian_logs解压后需要放到resource目录–无需做什么改动)
值得一提的是:在执行序号0步骤中的脚本时,会报错adb命令找不到,建议配置环境变量的同时,将文件copy到跳一跳源码根目录下,如上图2(adb的红框部分)

3、然后连接手机到电脑(如何连接参考另一篇文章360等小厂生产的手机–PC端执行命令adb devices 找不到设备,怎么破?

最终能找到设备即可,比如:

D:\work+work+work\Jupyter\codes\study\Wechat_AutoJump>adb devices
List of devices attached
1661800362      device

4、然后在第3步ok的基础上,打开手机进入微信小游戏跳一跳并点击开始游戏

此步需手工介入进入微信,打开微信跳一跳小游戏,点击开始游戏。进入准备界面即可

5、最后运行readme中的相关命令(即步骤0中提到的)

(base) D:\work+work+work\Jupyter\codes\study\Wechat_AutoJump>python nn_play.py --phone Android --sensitivity 2.045
2018-02-27 23:49:41.443727: I C:\tf_jenkins\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
==== successfully restored ====
3699 KB/s (60758 bytes in 0.016s)
CNN-search: 0000
adb shell input swipe 540 1574 540 1574 711  ##数字的意义分别是上、下、左、右 + 最后是弹跳所需的蓄力的时间ms
4179 KB/s (60077 bytes in 0.014s)
fast-search: 0001
adb shell input swipe 540 1574 540 1574 454
4916 KB/s (60459 bytes in 0.012s)
fast-search: 0002
adb shell input swipe 540 1574 540 1574 732
3818 KB/s (58802 bytes in 0.015s)
fast-search: 0003
adb shell input swipe 540 1574 540 1574 824   
...(此处省略n行)...

如果可以看到上述信息,说明手机上的游戏已经开始自动跳了~~~

最后

值得一提的是:这款跳一跳小游戏,已经加入了校验,如果得分过高(比如:5000),会被小游戏认为作弊。分数无效,不会记录到排行榜的。

但是可以用机器跑少点,比如:600+,然后把脚本命令强制stop掉(ctrl+c 连击多次)。
然后拿起手机,手动跳,直到死亡为止(最好跳十几或二十几个,扰乱程序的判断,从而达到不被判定为作弊的目的)。
这种方法也不是绝对可以的,,看运气吧(毕竟不知道微信的作弊算法是咋写的),,哈哈。

猜你喜欢

转载自blog.csdn.net/langhailove_2008/article/details/79394745