球探足球比分

图片
您的位置: 首页 > 新闻 > 单机资讯 > 新闻详情

技术帝:俄罗斯方块可以永远的玩下去吗?

时间:2011-10-30 14:49:04
  • 来源:3DM-迪奥死神
  • 作者:迪奥死神
  • 编辑:ChunTian

我们首先要证明一个引理:在循环中的任意时刻,通道n的实际循环区内绝对不可能出现形如“口■”的两个并排的格子。如图4.1,假设图中星号方块所在行是通道n的实际循环区内位置最低的“口■”的结构。假如这一行被消掉了,又由归纳假设,不存在哪个“S”形方块跨越了该通道的左边界,因此只有一种可能:某个“S”形方块从左侧面挤了进来(如图4.2)。但这样一来,我们又产生了一个更低的“口■”,矛盾。这就是说,星号方块所在行一直没被消去。但这也是不可能的,因为实际循环区内是一个新陈代谢、以旧换新的更替过程,每一行最后都是会被消除的。

接下来,考虑命题P(n+1)。要想让“S”形方块占据通道n的格子,只有图5这四种情况。但是,由于我们之前证明了通道n中不能存在“口■”,因此在这个“S”形方块落下之前,星号方块都是已经有了的了。注意到,每一个“S”形方块的下落都致使“■口”形结构的减少,但第一种情形除外——它消除了一个“■口”形结构,但在其上方带来了一个新的,使得“■口”形结构个数保持不变。没有哪种情形能够增加“■口”的个数。但是,通道n的“■口”形结构个数应该是恒定的,因为它在一个循环区里。因此,只有第一种情况才能够被接受。

因此,仅含有“S”形方块的循环只有一种情况——“S”形方块在各个通道内重叠,填满并消除若干行后回到初始状态。实际循环区内的每个通道都是一个模样:底下是0个或多个“■■”,顶部一个“■口”。注意,最右侧那个通道的最顶端是一个“■口”,右边这个空白一辈子也不可能用“Z”形方块填上。也就是说,在一个只含“S”形方块的循环区内,必然会有某一行,它的最右侧是一个“■口”,它保证了该行不能仅用“Z”形方块消掉。如图6所示,箭头所指的行无法单用“Z”形方块消除,因为星号位置不可能用“Z”形方块填充。

下面我们给出游戏机害死人的算法:

    1. 不断给出“S”形方块并显示下一个方块也为“S”,直到出现一个循环;

    2. 给一个“S”形方块并显示下一个方块为“Z”;

    3. 不断给出“Z”形方块并显示下一个方块也为“Z”,直到出现一个循环;

    4. 给一个“Z”形方块并显示下一个方块为“S”;

    5. 跳回1并重复执行。

这样的话,玩家为什么会无解呢?由上面的结论,在第1步后,游戏区域中出现了一个不能用“Z”消除的行。即使再给你一个“S”形方块,这一点仍然无法挽救,因为填充星号空格的唯一途径就是插一个“S”进去,但这立即又产生了一个“Z”永远放不进去的空位。然后,玩家就拿到了一大堆“Z”,最终必然会产生另一个循环,且这个循环区在刚才那个无法消去的行之上(循环区不可能包含一个不能消除的行,因为正如前面所说,一个实际循环区的所有行最终都是会被消掉的,这样才可能循环)。这个循环区的最左边那个通道将会产生一个“口■”结构,是“S”所不能消去的。于是,游戏机又给出一大堆的“S”,最终使得两种无法消去的行交替出现,直至Game Over。

有两点值得注意。一、虽然我们这里假设游戏机是有主观能动性的,但事实上呢,即使方块是随机出的,如果你足够倒霉的话,这个特殊的方块序列可能恰好就让你一个不错地碰上了;虽然这种怪事的发生概率极低,但理论上说仍然是可能的,因此俄罗斯方块终究不是玩不死的,总有一个时候会Game Over。二、这个结论可以直接扩展到场地为任意宽度的俄罗斯方块游戏。当场地宽为偶数时,上述证明同样有效;当场地宽为奇数时,无穷多个方形方块就可以直接干掉玩家。

友情提示:支持键盘左右键"←""→"翻页
0

玩家点评 0人参与,0条评论)

收藏
违法和不良信息举报
分享:

热门评论

全部评论

他们都在说 再看看
3DM自运营游戏推荐 更多+