于是,我灵机一动,想要编写一个阵容助手(Python),根据你想要玩的英雄,基于遗传算法为你推荐阵容。目前该助手适配9.19版本,如果有新的阵容出现,修改起来也很方便。另外,增加了铲子功能,但只能增加一个(增加两个计算量大,不够实时)。爬取相关网站内容获取英雄信息 这一步可以通过手动输入来实现...
用python写个云顶之弈阵容助手,助你今晚“吃鸡”遗传算法
前言:
自从自走棋游戏开始受到关注,不少人也预见到LOL版的自走棋将会变得极为流行。从用户的角度来看,这种流行的趋势无疑会越来越旺盛。今天,我将为大家介绍如何使用Python编写一个云顶之弈阵容助手,帮助你在今晚实现“吃鸡”(使用遗传算法)。
LOL云顶之弈人工智障助手
通过爬取相关网站内容获取英雄信息,阵容搭配与得分,利用遗传算法进行设计,运行结果,以及完整代码——欢迎在Github上star。
概述
作为一名云顶新手,我已经很久没有玩过LOL了。最近被朋友推荐了云顶之弈,玩了两天后觉得这个游戏挺有意思的。然而,游戏的阵容搭配种类繁多,如果不是天天研究这个游戏的,想要实现“吃鸡”可不是件容易的事情。于是,我灵机一动,想要编写一个阵容助手(Python),根据你想要玩的英雄,基于遗传算法为你推荐阵容。目前该助手适配9.19版本,如果有新的阵容出现,修改起来也很方便。另外,增加了铲子功能,但只能增加一个(增加两个计算量大,不够实时)。
爬取相关网站内容获取英雄信息
这一步可以通过手动输入来实现,但作为一名倔强的程序员,显然不能做这种事(手动狗头)。
一开始我尝试使用lol官网,但花了很长时间都没有成功(技术不够,泪目)。
后来我发现,多玩游戏的话,爬取信息会更容易一些。
结果如下:
另外,我还保存了英雄的昵称与其对应的id,方便输入(有时候真想不起来英雄的真名啊)。
阵容搭配与得分
建立一个列表,记录各种阵容搭配,包括所需人口数目和铲子能增加的羁绊。
计算英雄阵容与所需金币总数。
在计算得分时,不考虑羁绊效果不平衡的情况。另外,默认组成人口越多,羁绊效果增加得越多(采用平方得分函数)。
接下来是:遗传算法设计
编码时,我使用了实数编码,得分函数选择是上述阵容得分+所需金币数(越贵的英雄越强)。选择策略是得分最高的个体直接复制到下一代,得分最低的9个个体直接全部重抽。
结果运行得出:
效果还不错,大概几秒钟就能运行出结果,不影响游戏进度。同时,我为不熟悉Python的小伙伴制作了一个双击直接运行的版本,双击后,在cmd里根据提示输入参数即可。
(至少需要安装pandas库,命令:pip install pandas)
以上就是本文的全部内容啦!2024-08-10