我用python玩炉石传说(1)-----炉石卡牌相关度分析的手动打分器

作者使用Python创建了一个分析炉石传说卡牌相关度的工具,包括手动评分器、爬虫获取玩家套牌和自动构建算法,提升了卡牌组合的质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文共三个部分:

1,我用python玩炉石传说(1)-----炉石卡牌相关度分析的手动打分器

2,我用python玩炉石传说(2)-----炉石卡牌套牌爬取器及自动分析卡牌相关度

3,我用python玩炉石传说(3)-----炉石卡牌套牌自动构建算法

 

引言:

卡牌之间的相关度、combo之间的耦合程度直接决定一个卡组的好坏,例如之前的治疗园,卡牌耦合度高,出牌十分顺畅,即使尘数少,但质量依然高。

另外,卡牌之间的相关度缺乏一定的分析方法,往往靠想象与记忆,效果较差,因为套牌组到后头往往会忘记自己的核心机制,或在核心机制穿插太多其他无关combo,缺乏定量分析。这就十分考验玩家的经验了或是考验玩家耐心与尘量了。

于是我自己花了几周时间用python做了个qt界面,用于手动打分相关度。之后,发现工作量较大,就另外想了个方式,利用爬虫爬取其他玩家的套牌卡组,通过一些NLP中分析词相关性的方法,自动分析卡牌相关度。相关度效果不错,但在组套牌时发现,即使知道相关度也很难组出高质量的卡牌,所已有自己写了个简单的算法,完成套牌的自动构建。

 

分析环境:

2019年4月6日最新上线的暗影达拉然。本人只玩术士,所以所有数据与套牌都是术士的(个人认为术士是9个职业里,重复率最低的、变数、套路与花式最多,也是最难开发的),当然程序改成其他职业也不是问题。

一,卡牌的相关度分析,手动打分方式

通过pyqt编写分析界面,可以通过中间打分器,自己手动打分。

总共0到5分,分越大相关度越大

0:不相关,1:间接相关,2:直接相关或直接可触发,3:一般组合,4:不错的组合,5:combo

手动打分方式依靠的是打分人自己的想象能力与基本的炉石能力,优点就是比自动分析准确且分析面广,所有卡牌都会打分。缺点就是工作量较大,术士卡组有390张可选择,那全部手动打一遍分,粗略估计需要一周时间。(我一张卡牌打了30分钟)

 

(上图表示,左栏选中灵魂灌注,右栏为相关度从高到低的排序,中间为卡牌介绍及手动打分器)

二,程序部分

1,获取所有卡牌信息

readjson.py

可以下载所有卡牌中文信息的json文件,链接https://api.hearthstonejson.com/v1/30103/zhCN/cards.collectible.json

具体如何使用可以参考https://hearthstonejson.com/ ,网站的介绍,有说明字段的意思

{"artist":"AlexHorley","attack":7,"cardClass":"WARLOCK","collectible":true,"cost":7,"dbfId":52119,"elite":true,"flavor":"所有随从在下班出门之前必须搜身。","health":8,"id":"DAL_422","mechanics":["BATTLECRY","TAUNT"],"name":"至尊盗王拉法姆","rarity":"LEGENDARY","set":"DALARAN","text":"<b>嘲讽</b>\n<b>战吼:</b>将你的手牌和牌库里的卡牌替换为<b>传说</b>随从。","type":"MINION"}

2,相关性矩阵

relatmatrix.py

总共390张牌,用numpy构建390X390的矩阵,用于存放每张卡牌对应其他389张卡牌相关度分数。

3,分析界面QT

gui.py

看代码吧,比较简单,代码写得很丑,有bug

代码链接https://github.com/GladosAI/hearthstone-card-correlation-analys

因为是个人兴趣爱好,一直想做这样一个东西,好玩。但比较精力有限,所以比较简单,快速实现,代码写得十分丑陋,另外,我的python学的确实一般。所以欢迎相同爱好者可以一起来完善。

 

推荐一个高级炉石项目网站:https://hearthsim.info/ ,有些挺高级,例如模拟运行,可直接仿真对战,对研究卡牌构建十分有意义,不过好像挺长时间没更新了。

 

下一章,我用python玩炉石传说(2)-----炉石卡牌套牌爬取器及自动分析相关度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值