查看原文
其他

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

快学Python 2022-05-28

The following article is from Jack Cui Author Jack Cui

人生苦短,快学Python!


「王者荣耀」想必大家就算没有玩过,也都听过。


腾讯 AI Lab 开发的策略协作型“绝悟”,最强 AI 分分教你做人。


但那个是像 Alpha Go 一样,需要掌握海量数据和机器的团队,才能玩得起的。


今天,就给大家带来一个「平民版」,咱们都能玩的王者荣耀 AI。


先睹为快:



视频两倍速播放,只训练了一个「后裔」英雄,如果想用其他英雄,可以自己训练。


今天继续手把手教学,你准备好了吗?


1


实现原理

为了让我们的代码能够控制手机的「王者荣耀」,我们需要实现在电脑上操控手机。

需要用到什么呢?scrcpy 和 minitouch。

scrcpy 可以将安卓手机的画面投屏到电脑桌面显示上并进行操控。

简单地说,就是可以让你在电脑上控制手机!它支持鼠标控制、键盘输入、电脑剪切板复制粘贴、拖放文件传输到手机、以及拖放 APK 文件进行安装。

使用 scrcpy 你无需 ROOT 手机,也不需在手机上安装 APP,只需在系统设置里启用“USB调试”( adb 调试) 即可。

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

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

所以关键在于,如何根据图片生成操作指令

没错,用 Transformer。

上两天火的 DALL·E 都见到了吧?OpenAI 最新发布的,它可以魔法一般按照自然语言文字描述直接生成对应图片!

比如输入文本:鳄梨形状的扶手椅。

AI 生成的图像:


这生产效果真是堪称神奇!自然语言与视觉的壁垒正在被逐渐打通。


反过来,图片生成描述,更简单了,这样的工作几年前就用了。

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


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

2


算法测试
首先你得有个能跑 Transformer 的显卡,安装需要的第三方库,例如 pyminitouch、pytorch 等。

然后安装 scrcpy,这个安装教程很多,百度一搜一大把,将所有东西放在与下载的代码同级目录下。


下载训练好的模型文件。

还是老规矩,我将代码和模型打包了,方便大家直接下载(提取码:jack)。


https://pan.baidu.com/s/19oGrPYIyRVGUHttc2Ysvug


需要注意的是,不同手机的 minitouch 配置可能有所不同,代码的测试机器分辨率是 1080*2160,这里需要根据自己的情况进行修改。

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

运行文件“启动和结束进程.py”,启动scrcpy。把“训练数据截取_A.py” 中的两项改成你的设备:


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

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

项目地址:
https://github.com/FengQuanLi/ResnetGPT

3


最后:送书活动

今天介绍一本书,通过趣味的生活案例帮助读者理解编程中的专业概念,通过实用的程序学习编程中的逻辑方法,通过“理论 + 小案例”的形式对各个知识点进行讲解,并结合各个知识点进行综合实战的演练。

《Python编程从入门到精通》本书侧重于Python程序开发过程中重点和难点的理解,结合具有典型性的程序案例,用通俗的语言由浅入深、循序渐进地帮助读者掌握Python语言。知识点都使用生活中的案例帮助理解,每个案例都有详尽的代码解释,实战部分也会将Python语言与Web和数据分析等技术相结合,进行技术应用上的扩展。

点击下方公众号名片

回复:1015,即可参与抽奖!



推荐阅读    点击标题可跳转

用Python绘制全国鸿星尔克门店分布图,你的城市是最多的那个吗?

哈哈哈哈,用粤语还能写Python。。。
Python赋值、打包和解包,90%人不清楚的知识点!
我用Python的Seaborn库,绘制了17个超好看图表!
Python 3.10刚发布,这5点非常值得学习!


点击这里,阅读更多Python文章!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存