飞道的博客

Python AI机器人玩农药 “开外挂”,青铜变王者,起飞!

441人阅读  评论(0)

王者农药(荣耀)在座各位就算没有玩过也都听过吧,而现如今大火的人工智能技术相比大家也不陌生。就比如前些年的Alpha Go 大战李世石的围棋机器人,但那个是像 Alpha Go 一样,需要掌握海量数据和机器的团队,才能玩得起的。那么今天呢笔者就给大家带来一个乞丐版,咱们都能玩的王者荣耀 AI机器人。

光说不练假把式,上视频!

用 Python 自动玩王者荣耀,简直太秀了!


实现原理

为了让我们的代码能够控制手机的王者荣耀,我们需要实现在电脑上操控手机。需要用到什么呢?

  • scrcpy (注意不是scrapy)

    scrcpy 可以将安卓手机的画面投屏到电脑桌面显示上并进行操控。简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。使用 scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”( adb 调试) 即可。

  • minitouch

    minitouch 提供了一个 socket 接口用在 Android 设备上的多点触摸事件以及手势,也是无需 ROOT 手机。

用 scrcpy 获取游戏画面,获取 scrcpy 的句柄,然后截图,根据图片生成操作指令,然后利用 minitouch 高效的执行这些操作指令。所以关键在于,如何根据图片生成操作指令

没错,使用 Transformer!!!

使用 Transformer,根据游戏图像,生成当前画面的操作描述。

比如:前进、攻击、释放技能

 


环境搭建

  • GPU性能跑的动 Transformer 的显卡

  • Python3.5.x及以上版本

  • Python第三方库 pyminitouch、pytorch 等

  • scrcpy(百度很多教程,不赘述)

  • 将所有东西放在与下载的代码同级目录下

  • 下载训练好的模型文件(代码和模型资料自取地址:链接: https://pan.baidu.com/s/1jNZmXYY_JsebP4vgEjSbyA 提取码: fk2w )

FAQ:

  • 不同手机的 minitouch 配置可能有所不同

  • 代码的测试机器分辨率是 1080*2160,这里需要根据自己的情况进行修改。

  • 配置好环境后,就可以运行代码了。


运行程序

  1. 运行文件 “启动和结束进程.py”,启动scrcpy

  2. 把“训练数据截取_A.py” 中的两项改成你的设备

  3. 启动王者荣耀进入 5v5 人机对战后,运行 “训练数据截取_A.py” 即可

赶快自己体验一波吧!训练一个你最爱的英雄!

这个项目的代码,有些凌乱,还有硬核的中文变量。

算法性能有待提高,目前打打人机还行


各位友友,我的网盘资料是越堆越多了,尤其是小白入门Python的资料,我已经用不到了,现准备拿出来分享给大家,有需要的直接拿走。

 

需要的话可以添加我助教的微信(pykf20),她时间比较多,备注一下"领资料",方便她知道你的来意和最快速度给你东西,细品下图:

 


转载:https://blog.csdn.net/zhiguigu/article/details/113995458
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场