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

 

本文共三个部分:

  1. 我用python玩炉石传说(1)-----炉石卡牌相关度分析的手动打分器
  2. 我用python玩炉石传说(2)-----炉石卡牌套牌爬取器及自动分析卡牌相关度
  3. 我用python玩炉石传说(3)-----炉石卡牌套牌自动构建算法

 

引言:

前面两部分已经完成了卡牌之间的相关度分析,现在需要完成我们的最终目的,构建一个套牌deck。

最初,想用最简单的方法,即选择相关度最高的来完成构建,例如:首先选择情势反转,最相关的是阿兰纳斯蛛后,最选择与蛛后最相关的,地狱烈焰,然后依次进行,直至选满30张卡牌。

但实际发现这样构建出的套牌,虽然看似相关度高,但实际非常分散与自闭(由于缺少尘与卡牌,所以并没有完全按选出的卡牌实测)。表现出非常卡手,或是combo往往难以达成,提前拆散,可以想象为自行车链条,每个节点高度相关,成链式。但如果某张卡牌不得不出于解场,除掉后,相关性就中断了。也就是虽然combo很多,但combo与combo之间的耦合度很低,套牌构建不完善。

所以需要一种能发现最佳套牌的算法。需要两个‘器件’,迭代器以及打分算法

autobuild.py

一,卡组记录类

class BDeck:cardinfo = Nonecorrmat = Nonedef __init__(self, dicklist: list, cardnum: int, score: float):self.dicklist = dicklistself._cardnum = cardnumself._score = scoredef __len__(self):return len(self.dicklist)def __lt__(self, other):return self.score < other.scoredef appid(self, idn: int):self._score = self._score + self._newscore(idn)self._cardnum = self._cardnum + self.cardinfo.id2cardmaxnum(idn)self.dicklist.append(idn)def _newscore(self, idn):newscore = 0.0for n, i in enumerate(reversed(self.dicklist), 1):s = self.corrmat.get_rmatrix[idn, i]newscore += s / nreturn newscore

类中记录卡组的卡牌,以及卡组的得分,卡牌数量。

func appid:为添加新卡进入卡组时,自动计算其总得分

分数计算方法改进:不只是计算新加入的卡牌与其之前的卡牌相关度得分(4-5),还要计算其与之前所有加入卡牌的相关度累加得分(1-5, 2-5,,,),其中会对其卡牌距离做一定的衰减,例如 1-5会除于其相距距离5,2-5除4。可以理解成,我们希望新加入的卡牌,能与之前的卡牌有一定的相关耦合关系,成为一个体系,而不是又节外生枝发展出另一个体系(例如,本来是ZOOLOCK的,但发展到后来又出现了handlock卡牌)。但是,我们知道一个卡组里不可能全部都与一张卡牌相关,那样耦合的过于紧密,类似于全部聚类在了一起,那样只要1卡牌出完,那整个体系就崩溃了,所以加入衰减使卡牌加入顺序相隔越远的,所受影响会越小。(但实际上最后实验效果还是出现了多分支)

 

二,遍历所有卡牌组合的递归算法

def recursion_trave(deck: BDeck, spreed, deep):if deep < 1:spreed = 20elif deep == 1:spreed = 15elif deep == 2:spreed = 10elif deep == 3:spreed = 5elif deep == 4:spreed = 5elif 5 <= deep <= 6:spreed = 5elif 7 < deep <= 15:spreed = 3lastcard = deck.dicklist[-1]scope = RM.get_rmatrix[lastcard, :]scope[deck.dicklist] = 0scopesort = np.argsort(scope)[::-1]maxscoredeck = deckfor i in range(spreed):if scope[scopesort[i]] > 0:idn = scopesort[i]else:breaknextdeck = deepcopy(deck)nextdeck.appid(idn)if nextdeck.cardnum < 30:nextdeck = recursion_trave(nextdeck, spreed, deep)maxscoredeck = max(maxscoredeck, nextdeck)return maxscoredeck

选定一张核心牌1,然后遍历其所有与之相关的卡牌(2,3,4,5,6),进一步,再分别遍历与(1-6)相关的(1-6-7,1-6-8,1-6-9.。。。),无限递归进行下去,直至加入卡牌数量达到30张。就这样遍历了基本所有可能性,然后总结出得分最高的卡组。

 

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

 

实验效果

莫瑞甘的灵界
烈焰小鬼
虚空行者
怪盗天才
残酷集结
双生小鬼
巨型小鬼
小鬼狱火
拉法姆的阴谋
恶魔法阵
至暗时刻
伊瑟拉
恶狼大法师
凯恩·血蹄
人偶大师多里安
邪能领主贝图格
情势反转
阿兰纳丝蛛后

(默认是除了传说,其他都带两张,自己缺卡没试过,估计不行,算法还要改进,有条件的朋友可以试试)

(我个人觉得 换掉伊瑟拉 为一个效果不错的亡语或巨人 可能还能玩。恶狼大法师还是太卡,也换掉。把卡牌风格向zoo上靠,可能还救得活,毕竟反转+人偶大师/邪能 也能铺场)

这是算法自己生成的,有个问题,在恶魔法阵前本是恶魔zoo术的,后来由于至暗时刻与恶魔法阵与阴谋算是combo,导致后面节外生枝为另一个体系反转术。这里使用的是第二章里的相关度数据,来自400个构建好的卡组,估计使用自己手动打分会比较好,因为更加全面客观。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46832.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(写着玩)Python仿网络游戏《炉石传说》,继上次部分代码展示

上一期&#xff1a; &#xff08;写着玩&#xff09;Python仿网络游戏《炉石传说》&#xff0c;使用LOL的卡牌进行模拟对局&#xff08;版本1.0&#xff09;_AMarvelZ的博客-CSDN博客

手动爬取炉石传说所有卡牌

笔者还记得是从大学开始的时候玩的炉石传说&#xff0c;还记得当时的版本只有黑石山&#xff0c;纳克萨玛斯&#xff0c;地精大战侏儒这些卡包&#xff0c;转眼间到了现在&#xff0c;炉石传说早已和之前的那个炉石传说不再一样了&#xff0c;还记得以前的卡牌套路冰法&#xf…

革命炉石传说,Gods Unchained

欢迎各位新老朋友&#xff0c;我们细说P2E&#xff08;Play to Earn&#xff09;&#xff0c;为广大用户提供一个深入了解链游的平台。不定期的跟大家分享一些精品项目和最新链游方向&#xff0c;也欢迎大家关注我们。 我们第七期分享的是Gods Unchained&#xff0c;Gods Uncha…

卷没用的,我要被 AI 大模型抢走饭碗了

SOTA AI Devs Park 是专注于生成式 AI 领域的公益开发者社区&#xff0c;由生成式 AI 产业加速营 SOTA AI 支持建设&#xff0c;正在策划举办系列 Meetup 与闭门会&#xff0c;聚焦于同频交流生成式 AI 的前沿趋势与一线技术实践。 前不久我们出了一篇文章《AGI 变革&#xff1…

关于《更新win11之后我的edge浏览器打不开》这件事

win11更新后打不开edge浏览器的解决方法 1.打开此电脑&#xff0c;打开路径C:\Program Files (x86)\Microsoft\Edge\Application下的106.0.1370.42文件夹&#xff08;版本可能不同&#xff0c;总之找到全是数字的文件夹&#xff09; 2.找到msedgewebview2.exe文件&#xff0c;…

Edge地址栏搜索引擎换成Bing

‘设置’找到‘隐私&#xff0c;搜索和服务’ 地址栏和搜索 管理搜索引擎 添加保存设为默认值即可 以%s代替查询的URL: {bing:baseURL}search?q%s&{bing:cvid}

【PTA】 统计成绩2 (10分)

给定N个学生的基本信息&#xff0c;包括学号&#xff08;由12个数字组成的字符串&#xff09;、姓名&#xff08;长度小于20的不包含空白字符的非空字符串&#xff09;、高等数学成绩、C语言程序设计成绩&#xff0c;成绩均为[0,100]区间内的整数&#xff0c;要求统计高等数学成…

好分数网查成绩分数查排名服务平台_好分数免费查年级排名

好分数在线查年段排名,好分数在线查班级排名,好分数免费查询同学成绩 分数API是一个公益性的在线免费查排名软件 由作者一木独立开发 如果您方便的话可以下载软件后投币来支持我们 以维持服务器的正常支出&#xff0c;感谢各位 所需软件下载地址☞点我下载 教程开始 1.打开…

好分数学生家长查排名成绩-在线好分数查成绩入口

好分数在线查年段排名,好分数在线查班级排名,好分数免费查询同学成绩 分数API是一个公益性的在线免费查排名软件 由作者一木独立开发 如果您方便的话可以投币来支持我们 以维持服务器的正常支出&#xff0c;感谢各位 所需软件链接在文末 教程开始咯 1.打开 分数API APP&…

PTA 统计学生平均成绩与及格人数

7-3 统计学生平均成绩与及格人数 分数 15 作者 C课程组 单位 浙江大学 本题要求编写程序&#xff0c;计算学生们的平均成绩&#xff0c;并统计及格&#xff08;成绩不低于60分&#xff09;的人数。题目保证输入与输出均在整型范围内。 输入格式: 输入在第一行中给出非负整…

AI杂谈04 与Chat AI沟通代码与绘画的提词

BING AI&#xff1a;“与AI交流应该像与人交流一样&#xff0c;尊重对方的感受和权力。” 图源&#xff1a;文心一言 | 提词&#xff1a;少女机器人 漫画风格 作为小白&#xff0c;在使用AI生成代码的时候&#xff0c;耗过不少时间&#xff0c;栽过不少跟头&#xff0c;因此总…

一建证挂出去一年多少钱?

看专业、看专业、看专业&#xff0c;重要的事情说三遍。 目前在社保全国联网的情况下&#xff0c;如果不能转社保&#xff0c;一般很难挂出去&#xff0c;之前建筑、机电三年10万的光景已经一去不复返了&#xff01; 价位建筑和机电一般1年2万最多&#xff0c;大部分需求是半年…

计算机二级考试和一建哪个难,一建比二建难很多吗?终于明白了

原标题&#xff1a;一建比二建难很多吗&#xff1f;终于明白了 作为一个报考过一建二建考生&#xff0c;发自内心的说一句一建比二建要难很多&#xff0c;不过这也可能是因为我不聪明吧&#xff0c;不是那种说只要我想学&#xff0c;就能学会的&#xff0c;我在学习方面是比较适…

专插本历年真题_21年专插本历年真题试卷无偿分享

&#x1f44d;1.专插本真题解读考试大纲 每年专插本的题型不会有太大变动&#xff0c;难度上下浮动也不会有很大出入&#xff0c;所以专插本真题具有十分大的权威性&#xff0c;对于每个备考的学生来说都是非常重要的。通过专插本历年真题我们可以了解到考试的 题型命题风格、 …

杨洋 武汉大学计算机学院,同济大学杨洋一建名师

bianhaipo 考证达人 05-10 TA获得超过9026个赞 这里给出我根据我对各位考生的问题总结出来的高考填报平行志愿的若干注意事项&#xff0c;供你参考&#xff1a; 首先&#xff0c;平行志愿是各个省市区的招生政策&#xff0c;与具体学校无关。就是说&#xff0c;大学是没有办法决…

2023年一建教材

一建教材用书包括4本分别是《建设工程法规及相关知识师》、《建设工程项目管理》、《建设工程经济》、《管理与实务》&#xff0c;管理与实务包括建筑工程、公路工程、铁路工程、民航机场工程、港口与航道工程、水利水电工程、市政公用工程、通信与广电工程、矿业工程、机电工程…

计算机及应用一建,计算机应用与维护专业可以参加一建考试吗?

计算机应用与维护专业可以参加一建考试吗?2018年一级建造师报名是在中国人事考试网&#xff0c;报名时间是在7月份。2018年一级建造师成绩也能查询了&#xff0c;2019年一级建造师备考也开始了&#xff0c;在等一段时间&#xff0c;2019年一级建造师就要报名了。现在已经知道2…

一建加试英语和计算机,一建和一造哪个考试难度大

一级建造师和一级造价师是建筑业含金量高的两大证书&#xff0c;难度相似。很多考生在这两者之间犹豫不决&#xff0c;不知道该选哪门考试。事实上&#xff0c;选择哪种考试更好&#xff0c;要看考生自身的实际工作需要。如果你有足够的时间和精力&#xff0c;你也可以两者兼而…

时间计算题100道_搞定一建经济中让你抓耳挠腮的计算题(1)

搞定一建经济中让你抓耳挠腮的计算题&#xff08;1&#xff09; 经济这一门的计算题是比较多&#xff0c;整本教材的计算题是在30个左右&#xff0c;其中几个比较难点的题是在第一章“工程经济”中出现&#xff0c;我们就来解决一下第一章中最重要的第二节“经济效果评价”中的…

一级建造师(一建)电子证书下载

一建电子证书每三个月就得重新下载一次&#xff0c;一建注册证书每六个月就得重新下载一次 为了避免反复遗忘&#xff0c;记录一下操作步骤。 一建电子证书 进入 中国人事考试网 点击左侧 证书查验 点击 证书下载 登录后点击 下载 按钮 若需要延长有效期则点击 申请证…