首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Tensorflow模仿HearthArena炉石卡片排名算法

在这篇文章中,我将重新创造卡牌游戏《炉石传说》卡组制作工具的卡牌排名算法 什么是《炉石传说》 炉石传说-一个虚拟纸牌游戏 对于那些不知道的人来说,《炉石传说》是一款策略纸牌游戏,其目标是创建一个包含30...在竞技场游戏模式中,玩家一次抽30张牌,每次在3张牌中选择。 ?...因此,我将注意力转向创建一个监督学习模型,以预测给定特定卡组(输入)的总体卡组得分(输出)。对于这个模型,我拥有所有我需要的数据——牌组列表以及相关的胜率,它们可以被规范化以获得牌组分数。 ?...需要明确的是,我所构建的模型并没有遵循hearttharena的算法,即让玩家手动分配每张卡片的分数,并让算法对分数进行微调,而是尝试着在没有玩家干预的情况下模仿hearttharena的算法。...准备好理解如何使用提供的api 最重要的是,相信自己,愿意尝试。当我第一次开始这个项目的时候,我很难想象能够达到我的目标,但是我的信念有了飞跃,并且对结果感到惊喜!

66510

AI 赌神——如何教神经网络玩 21 点游戏?(附代码)

考虑到这种情况,我们可能希望模型告诉我们输的概率是多少。再说一次,只有当我们可以增加或减少赌注时,这才有用,而在 21 点游戏中我们不能这样做。...所以我决定一个动作是否正确的方法是模拟 21 点游戏:把牌交给玩家和庄家,检查是否有人有 21 点,只做一个动作(拿牌或不动),模拟游戏结束并记录结果。...由于模拟玩家只做一个决定,我们可以通过他是赢还是输来评估这个决定的质量: 如果玩家拿牌并获胜,那么拿牌(y=1)是正确的决定。 如果玩家打输了,那么不动(y=0)是正确的决定。...因此,我们似乎不能轻易地将它的决定提炼成几个简单的经验法则。 神经网络的拿牌频率与庄家出示的牌值 结 论 希望这篇文章给了你一个关于如何使用机器学习辅助现实生活中决策的不错介绍。...但是,如果有人对使用或扩展我的代码有兴趣,这里有几个对这个项目潜在的有趣扩展: 1、尝试通过更优化的神经网络结构来改进模型,或者添加用于拆分 A 的代码(我没有把它构建到我原来的模拟器中),或者选择比我使用的基本特征更好的特征

64730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【编程擂台】第2季 - 又一批码上行动学员作品新鲜出炉(附学习感言)

    要不起之后,由上家继续出牌; 最先出完牌的玩家赢得游戏; 机器出牌规则制定: 机器拿到牌之后按照大小顺序整理牌面; 按照优先级:炸弹、顺子、三带一、三带二、对子、 待续。 ?...学习感言: 还有很多bug,甚至都是电脑自动生成牌,自己在玩,还没有实现用户操作。不能算完成吧!但是通过这次比赛,我第一次写出了一千行代码。这是我以前不敢想的,大大提高了我的自信心。...7、猜数字游戏加强版 作者:505708909(安静的李木木) 学习时间:四个月 项目地址:https://paste.ubuntu.com/24411356/ 项目展示:注册新用户、验证账号密码、反复进行游戏...零基础入门是我首要考虑的,我在一个封闭的环境工作,接触外界的机会很少,上什么培训班自然是不现实的,但内心就是喜欢编程,可能将来不能靠这个吃饭,但还是会一直学下去,这就是我的爱好,思考并解决问题是有成就感的...在思考这个项目时,心里是没有底气的,虽然学了好几个月了,比同行的学友却落下很大一截,因为过年结婚,耽误了不少时间,在助教的鼓励下,决定尝试一下,就当是对之前学的做一个检验,看看自己到底学到什么程度,最终

    95890

    AI 赌神——如何教神经网络玩 21 点游戏?(附代码)

    考虑到这种情况,我们可能希望模型告诉我们输的概率是多少。再说一次,只有当我们可以增加或减少赌注时,这才有用,而在 21 点游戏中我们不能这样做。...所以我决定一个动作是否正确的方法是模拟 21 点游戏:把牌交给玩家和庄家,检查是否有人有 21 点,只做一个动作(拿牌或不动),模拟游戏结束并记录结果。...由于模拟玩家只做一个决定,我们可以通过他是赢还是输来评估这个决定的质量: 如果玩家拿牌并获胜,那么拿牌(y=1)是正确的决定。 如果玩家打输了,那么不动(y=0)是正确的决定。...因此,我们似乎不能轻易地将它的决定提炼成几个简单的经验法则。 ? 神经网络的拿牌频率与庄家出示的牌值 07 结 论 希望这篇文章给了你一个关于如何使用机器学习辅助现实生活中决策的不错介绍。...但是,如果有人对使用或扩展我的代码有兴趣,这里有几个对这个项目潜在的有趣扩展: 尝试通过更优化的神经网络结构来改进模型,或者添加用于拆分 A 的代码(我没有把它构建到我原来的模拟器中),或者选择比我使用的基本特征更好的特征

    1.7K01

    这次 AI 突破的是麻将!

    而另一方面,对于非完美信息游戏,隐藏信息对于游戏的难度影响很大。例如麻将,参与者只能看到他手中的13张牌的信息,对于另外三家的手牌以及剩余的底牌则完全不知。...图:游戏 AI 发展历史 如果把过去的游戏AI的研究看做“一维延展”(信息集数目)的话,那么德州扑克则是向二维方向(信息集平均大小)的初始尝试。...一方面,136张麻将牌的排列组合可能性非常多,再加上打牌过程中4位玩家出牌的顺序并不是固定的(例如碰杠等),导致游戏树不仅不规则而且还是动态变化。...与此同时,对于麻将复杂的牌面表达和计分机制,研究团队还利用“全盘预测”技术搭建起每轮比赛和8轮过后的终盘结果之间的桥梁。...他表示:“我已经看了300多场Suphx的比赛,我甚至不再观看人类玩家的比赛了。我从Suphx身上学到很多新技术,它们对于我的三人麻将打法有着非常大的启发意义。” 期待“苏菲老师”晋升天凤位。

    75010

    开发元宇宙链游开发NFT卡牌游戏系统

    因为我们公司现在正在玩区块链游戏。1.在游戏厂商层面,游戏中的虚拟资产可以映射成加密货币,可以跨平台自由流通和交易(相对于现在的QQ币,只能在单一平台流通,不能交易,不能兑换其他平台的游戏币)。...游戏服务商解读不一。事实上,我们可以发现区块链游戏确实颠覆了以前的模式。尤其是在目前正在构思的元宇宙方面,我想用一个工具把虚拟的数字世界和现实世界联系起来,让虚拟世界的资产也能在现实世界中得到应用。...Splinterlands不仅NFT各种卡牌,还加入了土地拍卖、NFT卡牌交易、卡牌合成等元素,增加卡牌和土地的流动性,解决了大多数数字卡牌游戏不允许玩家交易或出售游戏资产给其他玩家的问题。...b4e979f82e3fd142cd26a13d61408c73.jpeg 1.在游戏厂商层面,游戏中的虚拟资产可以映射成加密货币,可以跨平台自由流通和交易(相对于现在的QQ币,只能在单一平台流通,不能交易...游戏服务商解读不一。事实上,我们可以发现区块链游戏确实颠覆了以前的模式。尤其是在目前正在构思的元宇宙方面,我想用一个工具把虚拟的数字世界和现实世界联系起来,让虚拟世界的资产也能在现实世界中得到应用。

    71820

    【重磅】AI击败顶级德扑玩家的秘密!德扑AI创造者现身reddit,全面解答34个提问,详解Libratus的现状和未来

    对于像扑克这样的游戏来说,深度学习并不是特别必要的。 但是我认为对于其他一些游戏来说,某种类型的函数逼近是相当有用的。 DeepStack使用了深度学习技术,但是还并不能确定它到底是多么有效。...在6-max做一个有意义的竞争也是不可行的,因为我们很难提防人类玩家之间的勾结(包括潜意识的勾结)。 11.提问:你说纳什均衡不能保证在3+玩家的游戏中避免失败。这是真的吗?...关于为什么你不能只使用PIOsolver进行这种比赛有以下几个原因。(当然事先声明:我对PIOsolver的了解是相当有限的,但我会尽可能地回答我知道的部分。...对于一个给定的游戏规模,不完美信息博弈更难以解决,因为其模型必须在子博弈之间平衡策略。例如,在扑克中,不应该总是看到好手就下注,看到坏手就弃牌。...你是说这是CFR和CFR +的区别? NoamBrown:CFR +对于CFR来说是一个小小的改变(基本上是设置了遗憾的最小值以及改变了平均权重),从而在实践中取得更好的表现。

    1.2K40

    AI赌神称霸德扑的秘密,刚刚被《科学》“曝光”了

    在下注金额上,100美元和101美元其实几乎没有差别,因此,算法可以对不到100美元的差异进行四舍五入。同时,将类似的牌面视为同一类,也能降低计算的复杂度。...需要说明的是,Libratus在后两轮游戏中并不会按照抽象版的解决方法来玩,蓝图策略在这两轮中的作用,只是用来估算玩家在子游戏中每一首牌应该得到的奖励,然后参考这个估算值,在真正的牌局中做出更精确的策略...比如,对于K-High Flush(最大牌为K的同花)和Q-High Flush(最大牌为Q的同花),这两手牌对于Claudico来说是等值的,而Libratus则会做一个精确的区分。...实际上,Libratus会对每一手牌进行单独的处理,根据不同的牌面制订出不同的战略。 再比如,对于250元的下注,是当成200元还是300元来计算?那么249或者251呢?...其中就包括:Libratus并没有使用目前相当火热的深度学习技术。 “深度学习是个非常好的技术,但我们没有在这个项目应用,是因为深度学习不能给出绝对的保证。

    82060

    软件说明书可以从桌面游戏中学到什么

    令我惊讶的是,这些说明仅用大字体写在一张纸上,上面有很多空白,并用宜家风格的插图写了三个大数字,这简直是侮辱性的: 1.给每位玩家发五张牌。(附五张牌的图片,使读者在游戏中会遇到不同类型的牌。)...而且在前几场游戏中,很多时候我们不得不停止游戏并挠头,问道:“等等,那张牌之后我们不能再玩这张牌了?现在发生了什么?”...为了得到答案,我们回到了规则上,并查看了规则表背面的小参考部分,以了解游戏的一些技术层面的东西。 但是你看,它欺骗了我们。我们不觉得我们正在阅读说明,因为我们正在积极地玩游戏。...还是能做到的嘛!当然,对于“ 3个简单步骤”,有很多复合句子,但是您的读者不会注意到;他们太忙于按照说明进行操作,并且对您的编号列表中的大量数字感到眼花缭乱! 您知道,我并不是说说明书是诚实的。...实际上,我说的都只是假设情境! 快速掌握您的说明书,让他们使用您的应用程序,他们会忘记所有的入门知识。 离群值 诚然,有些事情并不适合这种完美模型。

    72500

    今年天猫双11的这些技术,可能会改变整个零售行业

    2014年,双11开始强调移动购物,当天移动端交易额占比42.8%,2015年这一数字变为68%,在最新一季财报中这个数字是75%,移动电商已成为主流;2015年,双11与湖南卫视尝试了“双11狂欢夜”...在此之前,天猫客户端已经与许多品牌合作直播,直播正在成为天猫以及越来越多电商平台的基础能力。...3、AR营销会在电商行业风靡 AR即增强现实之前在品牌营销领域已经被应用得较多了,比如扫一下产品包装盒可以玩儿互动游戏,再比如扫一下电梯广告牌可以看到H5页面介绍。...AR对于营销的价值在于可打通虚拟与现实,实现很强的互动。...,反过来,双11在直播、VR、AR、个性化和eWTP等领域的尝试,也将会推动商家和合作伙伴在内的电商生态进化。

    5.9K90

    Zoom为扑克玩家提供平台(Internet)

    “在疫情期间,我正在寻找一种与我的一些朋友打牌的方式,我偶然发现了Zoom,但我并不能自己弄懂它。”Madick补充道。...他的其他牌朋友也想聚在一起继续每周的现场游戏。 “但我不习惯戴着口罩坐在纱门廊里。在Zoom玩扑克的主要好处之一是它是安全的,”他告诉TechNewsWorld。...大多数是强制下注的游戏,每张牌的下注额度都会增加,你要么跟注,要么就得弃牌(不查牌)。 他获得经验的第二类游戏是较高赌注的赌场游戏。这主要包括无上限扑克或奥马哈扑克。...一个特定的“代码”被分配到一张桌子上,每个玩家都会去编码的网站,大家在屏幕上看到的是一样的东西。这个平台提供了一张桌子,你可以在上面设置玩家,还有一副牌。...所有的钱都会被重新分配给玩家。 “如果你在第一个小时内输掉所有筹码,你可以再买入40美元。所以在任何一个周三晚上的游戏中,你最多可以输掉80美元。你玩扑克比赛是不会发财的。

    1.2K40

    家有2一10岁孩子的赶紧保存,注意力训练,超有用!

    一看见火红的太阳,它们又害怕了,因为太阳太大了,它们又看见一棵树上的一片好大的树叶,树叶上又有站着一只小鸟,正在吃害虫,害虫吃了很多树叶,让大树不能长大,大树是我们的好朋友,每一棵树都产生氧气,让我们每一个人呼吸...乙:森林里的动物和植物充分享受着大自然的阳光和雨露,自由自在地生长. 第二组: 甲:我有一个美丽的愿望,长大后做一个植物学家,种出世界上最美丽的花送给妈妈....乙:我有一个美好的愿望,长大后做一个植物学家,种出世界上最漂亮的花送给妈妈. 2. 针对孩子注意力训练集锦 2.1....按顺序找数字 我国年轻的数学家杨乐、张广厚,小时候都曾采用快速做习题的办法,严格训练自己集中注意力。这里给大家介绍一种在心理学中用来锻炼注意力的小游戏。...如她说猜对了,就胜,两人轮换做游戏。随着能力的提高,家长可以增加难度,如增加牌的数量,变换牌的位置的次数和提高变换牌位置的速度。

    40920

    用Python破解 斗地主残局 ,对王,然后3带2!

    直接上一张朋友圈看到的残局图: ? 这道题我刚看到时,曾尝试用手工来破解,每次都以为找到了农民的必胜策略时,最后都发现其实农民跑不掉。...如果我们要用这个函数来模拟两个人的出牌,则还需要知道对手当前的所有牌:enemy_pokers。 这个函数的返回值,是轮到我me_pokers出牌时,是否能够必赢牌。如果能赢则返回真,否则返回假。...如果对方上一手选择过牌,或者没有上一手牌,那么我这一轮必须不能过牌,但是我可以出任意的牌 如果对手上一手出了牌,则我必须要出一个比它更大的牌或者选择这一轮直接过牌(不出牌) 关键点来了,在出完我的牌或选择过牌后...如果对手的下一次出牌不能获胜的话,则我这一次的出牌必胜;否则,对于我的每一个出牌选择,对手都能获胜的话,则我必败。...效率 由于一副牌的可能手牌巨大,导致递归的分支数巨大。所以时间开销非常大,为阶乘级O(N!),根据斯特林公式,大约为O(N^N)。 由于可能会有很多重复的牌面出现,导致了很多重复的递归调用。

    1.3K50

    我学会了用强化学习打德州扑克

    如果一个玩家弃牌,另一个玩家就会得到盲注,如果两个玩家全押,则发放 5 张公共牌,并且金额按照扑克的正常规则进行分配。 ?...以下函数隐含地定义了这样一个排序,并创建了从牌的编号到相关决策信息的映射:牌的排序(牌面顺序/rank)和同花性(牌面花色/suitedness)。 ?...当然,有时候两人起始手牌有一张牌是相同的,在这种情况下,它们的期望不能同时计算,这时取得他们的期望利益也不合适。...这里需要注意一点——我们要确保在所有状态采取所有动作,每个状态-动作组合至少尝试一次,这样才能很好地估计出最终每个可能的值。...例如,由于模型完全内置的函数形式,我们看到的 GII 的估计值的差异在两个特定手牌组合下,如 A2 和 K2,对于 SB 和 BB 是完全相同的。不管θ的值如何,我们的模型都不可能预测。

    1.3K110

    雀神,微软亚研推出超级麻将AI Suphx,还上了专业十段水平

    那么机器学习能不能挑战隐藏信息更多的游戏,运气程度更大的游戏?从桥牌到麻将,微软已经在非完美信息博弈上做了很多研究,这一个维度还有很多值得探索的问题。...尤其是在参与者只知道几张牌,周围缺失信息远远超过已知信息时,模型差不多只能靠「预测」。对于这样的游戏,核心技术就不再是树搜索,而是需要在某种预测的指导下做决策。...比如说奖励机制,因为一轮游戏包含 8 局,每一局得分通过和牌牌型与番数计算,最后 8 局的总分才会最终影响段位奖惩。而和牌牌型与番数的计算规则非常复杂,因此怎样给智能体分配奖励就非常重要了。...因为麻将每一次洗牌都会有不同的牌面,所以智能体还要学会将以前的打牌经验与本局的牌面联系起来,从而调整策略。...那么麻将的随机性呢 麻将与其它棋牌游戏有一个很大的差别,麻将拥有大量的随机性,例如每次初始的牌面、摸到的牌、吃碰杠打乱的顺序等等。

    74950

    科学家发明「不能作弊的扑克」,研究登上计算机图形学顶会

    机器之心报道 机器之心编辑部 同时为四个人显示不同牌面,互相看不到,也不需要穿戴特殊设备。...纸牌游戏,经常伴随着各种出千作弊的方式,从洗牌作弊、偷藏额外纸牌再到最简单的,偷看别人的牌…… 只有你想不到的,没有我做不到的。...此前,大多数把棋盘游戏和纸牌游戏数字化的尝试,通常会用一块巨大的触摸屏显示器当做桌面,让玩家们在其上进行游戏。...接下来,形成重影的光线在双 SMA 中反射奇数次,使得它们的偏振方向发生了变化而不能通过第二个偏振片。...相反,透射光线和形成空中图像的光线在双 SMA 中反射偶数次,偏振方向与重影的光线不同,可以通过第二偏光片。 虚拟现实的扑克游戏有趣地展示了改进版全息显示技术的强大之处,还有无数其他应用正在路上。

    71340

    德扑AI这些年!

    )的cfr+求解,所以累计后悔值等于后悔值,而cfr+也求解出了“我”应该以100%的比例出布来战胜对手。...在上面介绍solver的时候已经说过,cfr算法会在每个需要决策的地方尝试所有可能的动作,这就导致了,如果从德州扑克游戏开始时(严格地说,从preflop开始)使用cfr,那么整颗游戏树会特别的大,遍历起来会极其慢...的时候,公共牌是555还是55J差不多,于是就可以把这两种公共牌看作是同一种情况: 压缩牌面,又叫card abstraction 而Libratus 的方法和 Tartanian7[7] 对比起来就没那么暴力了...于是deepstack [2] 决定,对求解的深度再做一个截断,cfr算法计算到某个深度之后,该深度节点的ev值就直接用深度神经网络去估计,不再向下进行计算了,这个方法在大体思路上其实和Libratus...而德州扑克的策略逻辑太深,我并不认为神经网络可以达到多好的精度。 那么这对于扑克社区意味着什么呢?

    2.2K51

    独家 | 在CMU对话德扑AI团队:解密1+2技术架构,不攻反而不败

    比如,对于K-High Flush(最大牌为K的同花)和Q-High Flush(最大牌为Q的同花),这两手牌对于Claudico来说是等值的,而Libratus则会做一个精确的区分。...实际上,Libratus会对每一手牌进行单独的处理,根据不同的牌面制订出不同的战略。 再比如,对于250元的下注,是当成200元还是300元来计算?那么249或者251呢?...其中就包括:Libratus并没有使用目前相当火热的深度学习技术。 “深度学习是个非常好的技术,但我们没有在这个项目应用,是因为深度学习不能给出绝对的保证。...“这个算法还可以被优化,而且计算硬件的提升,未来我觉得手机可能上就能运算”,Brown估计说可能五年内一部手机就能搞定一切了。 而对于他的老师Sandholm来说,成本计算要复杂得多。...他在这方面最早的成绩,还要追溯到1989年前后,当时他做了一套自动为卡车司机谈判并分配任务的系统。 比赛看点 最后,再聊聊即将开战的冷扑大师vs龙之队。

    85150

    强化学习决策涉及因素太多,要知道确切的概率几乎不可能?

    图 2:掷 12 个骰子 60 次的平均期望值(阿尔伯塔大学) 我忠实的读者可能对这种基于抽样的估计并不陌生,我在此前的相关文章中也对 k-bandit 系统也进行了抽样。...三、蒙特卡洛方法的策略控制 如果一个模型不能提供策略,那么蒙特卡洛方法也可以用来估计状态动作的值。...首先,让我们定义游戏的规则和条件: 我们只会和庄家对抗,而没有其他玩家参加。这使我们可以将庄家发牌视为环境的一部分。 牌面数即为卡牌值。纸牌 J,K 和 Q 的价值均为 10。...由于先前状态 V(19,10,no)的返回值为 -1,因此我们计算出预期返回值并将其分配给我们的状态: 图 8:21 点演示的最终状态值 3、实现 让我们使用「首次访问」的蒙特卡洛方法来实现 21 点游戏...对于每一轮游戏,我们都调用先前的「 generate_episode 」方法来生成有关状态值和该状态后获得的奖励的信息。我们还初始化了一个变量来存储增量返回值。

    48310

    Gemini代码助手审查:代码补全需要改进

    我开始怀疑,正因为这个原因,JetBrains 等替代方案是否正在获得巨大的提升。...和以前一样,我将对我的项目进行实际更改,并查看代码补全的行为。我的游戏项目使用随机数,但我需要从列表中获取它们,以便能够就地生成它们,或者使用预先准备好的数字集进行测试。...由于在开发过程中获取数字的调用顺序可能会发生变化,我需要确保每次调用都从列表中获取固定的索引,此外还要检查我是否不会意外地两次获取相同的数字。但是,这在循环中很难管理,所以我返回一个数字块。...它充当这些块分配的管理器。” 这是一个很好的总结。关键在于它使用术语“预留”识别了预留模式,而这并非基于我在代码中留下的任何提示。它还理解了“游戏的不同部分”的含义,以及数字可能是预先生成的。...关于 Gemini Code Assist,唯一让我担心的是代码完成的速度,有时会稍微迟缓一些。在代码重构期间,任何代码助手都不能确定哪些代码部分不再是新解决方案的一部分。

    8510
    领券