00:00
2018经典俄罗斯方块世界锦标赛决赛,年仅16岁的小将jph sley以惊人的手速打败了七冠王的Jonas new be,成为了新一代的俄罗斯方块之王。时隔三年2021年腾讯极客挑战赛俄罗斯方块比赛呃,名字很有鹅场风格,第六季最强大脑脑王天才少年郑琳凯用他的代码把俄罗斯方块玩出了超神速度,最终夺冠。这就是代码的力量,用代码来玩俄罗斯方块,听起来是不是很神奇?那么如何让你的罗斯方块像他一样飞起来?让我们先来了解一下这场俄罗斯方块游戏基本规则吧。首先,这次游戏的方块总数是1万个,落完则游戏结束,方块的下落序由一个尾。
01:00
随基数生成器生成的生成器的种子也是固定的,这意味着方块的下落顺序是固定的。消除时场地格子越多,一次性消除的行数越多,得到的分数越多。run one套用八在上天梯第二的程序。大多数tri AI算法都只追求不死,所以套用的分数一般都不高,得到的分数才不到10万。从销路方块数量恒定这点来看,我们要追求的不是不死,而是在游戏能够继续的基础上尽可能的拿到高分。round two修改估算函数使用的是mon卡洛search蒙特卡洛搜索外加估价函数,分数果然从10万到60万,再到107万,但距离当时排行榜的第一名137万还有点距离。run three不能再用MCTS了,要搜索,要再包含1万乘二的二。
02:00
百分钟状态的游戏中搜索出最优解,这么多状态书怎么搜,答案就是简直,但是简直太难了,搞错了再来破,所以我后面就是决定说把他们都留下来,对,嗯,留下来之后大家一起再往外扩展,到最后看谁的表现会更好一点,就不不在这方面做解释了,对,然后但其实比较也是可以有比较那个情况的,就比如说要是两个局面格子数要是一样多的时候,我就可以划分数来比较,因为这时候那个分数少的那一个局面格子数已经已经没有太多,因就格子相同的话,我就会留个好的局面,对,大概就是一个朴素的朴素的思路,那么修搜索的时候,可能有些局面我让他搜到第五轮的时候哈,有些局面让他搜到第七轮的时候消对我都保留下来,那第五轮第七轮的局面里没法直接比较,但是我都直接全全保留下来到。
03:00
最后看你第五轮的局面,你就只好第五轮的去比较,第七轮局面,第七轮就就分开来比较,大家在不同的轮次上,不同的赛道上就别比了,在同样的赛道上再去比,对那相同相同比较,我是引入了一个叫做行变化数,还有列变化数的那个东西,你对整个游戏局面,然后把那些和空气有接触的那些边框格给大加粗嘛,然后统计一下有多少条边,然后应拉开这个树枝来,因为程序其实很笨,他不知道为怎么,我们人在堆的时候,我们会尽可的往底堆嘛,然后把它堆在上面会略平一点,稍微有点起伏也不能堆,但是程序有可能他就给你中天柱咒,对,就是就是拿,因为拿那些date还有S级给叠一个超高的,对,但是你叠超高的,你又没有足够多的长条来消掉这个很容易就直接游戏就死绝了,对,所以引于引入这么一个估价函数,是为了说去把把把这些局面给它丢掉,就让他我们自己。
04:00
人工的这样一个评判标准,把这些标准应用上去,那程序大概是说,哦,这个局面在行,在在那个行业变化数的指标都是高的,说明它是不好的,这个局面诶比较平,说明那个旁边话术是我的那个数值会比较小,所以它这个局面是一个偏好的局面,就是人为引进出来的一个东西。victor科劳德作为俄厂技术天花板最硬程序员,今后将在克劳德出马中带领大家了解更多关于代码的秘密。好了,以上就是本期内容,游戏源代码链接请移步评论区查看,祝你玩的开心,最后别忘了一键三连。
我来说两句