俄罗斯方块是一个经典好玩的游戏,从小时候的黑白掌机游戏,文曲星自带游戏,到后来的QQ火拼俄罗斯,PSP上的俄罗斯,可以说这个游戏陪我走过了很多年,而且现在Android平台上也有官方发布的俄罗斯方块,估计没有哪个游戏会有这么长的寿命吧。

最近看到有人分享一个俄罗斯方块的AI,可以说是无尽的俄罗斯方块,先来看看效果吧,http://juleswang.github.io/Tetris.AI/

俄罗斯方块

如果我们作为玩家,在游戏速度固定的情况下,能坚持多久呢?我相信不失误的情况下,很多人都能够玩很久,我以前在文曲星上也是玩了很久,到后来没兴趣继续玩下去了,才打了一个2008这样的分数结束了。如果游戏速度加快,其实就是增加了玩家的失误几率,所以游戏难度就相当于是变大了,但这个速度对计算机来说足够处理出结果了。

如果要计算机自动来进行,那就需要一个比较智能的算法,而且计算机跟玩家不一样,玩家有时候操作不当会失误,计算机则不会,所以理论上计算机是可以实现无尽的游戏的。而具体的实现算法,则跟游戏的规则有关系,比如一次消多行有奖励分数,那就要调整算法策略偏向一次消多行。如果可以看到接下来的多个方块,那就需要把这接下来的几块也都考虑进去,一般玩家很难思考过多的方块,而计算机则运算能力强多了,上面的这个游戏规则就是能知道未来的四个方块,这对计算机来说更有利些。

俄罗斯方块的游戏很多开发者应该都会做,但基本上都是玩家操作的模式,我也做过一个玩家间对战的俄罗斯方块,山寨的QQ火拼俄罗斯,如果俄罗斯游戏没有道具,没有惩罚,那么一些高级玩家基本上能玩很久,所以火拼俄罗斯加入了道具和惩罚等模式,使游戏更有趣味性和不确定性。

曾经百度之星就有个总决赛是设计俄罗斯方块AI的,总体的规则是普通的俄罗斯方块规则,但计分规则略有不同,所以参赛选手要根据计分规则设计算法,得分高者胜。